首页新闻找找看学习计划

大型ERP系统,表之间的外键关联是否应该设置?

0
悬赏园豆:50 [待解决问题]

听别人说,什么金蝶、用友、SAP、OracleERP的数据库,都不做外键关联设计,说是因为影响性能。我也知道会有些性能损耗,但为了这点性能值得去掉外键关联吗?喜欢用外键关联设计的人都清楚,这样做有利于数据的规范和完整性,避免异常情况下,造成垃圾数据和错误数据。还有个最大的好处是,现在都流行使用ORM框架,不设置外键关联的话,没法使用对象技术,方便快捷的编码?大家以为如何呢?发表下看法吧

刘彻的主页 刘彻 | 初学一级 | 园豆:152
提问于:2016-01-14 11:50
< >
分享
所有回答(8)
0

你问SAP如何设计数据库,或者问金蝶如何设计数据库,或者问一个三线城市的ERP如何设计数据库,得到的是完全不同的解决方案,

没有一个放知天下而皆准的答案的。

开发效率、运行效率理论上是反向指标。要不然怎么会有一大堆SB在指责ORM性能差呢。

有多少资源办多少事,别问沙特王子如何在黑五更好的抢购美亚的电子产品,如何走物流才能更省钱,

他们一般是买完直接用私人专机运回家的。

爱编程的大叔 | 园豆:29818 (高人七级) | 2016-01-14 11:59
0

咋设计都行,在客户没意见的时候咋快咋开发

刘宏玺 | 园豆:14004 (专家六级) | 2016-01-14 13:40
0

必须设置,不然你死定了!

搁忆 | 园豆:600 (小虾三级) | 2016-01-14 16:32
0

不用设置外键关联,这是成熟作法,在程序中设置就行,不要听书本的

elite_2012 | 园豆:202 (菜鸟二级) | 2016-01-15 14:36

能不能说些详细的理由?

支持(0) 反对(0) 刘彻 | 园豆:152 (初学一级) | 2016-01-16 18:29
0

你知道 为啥不设置外键不知道。因为这样子的话做的话 可以省去你很多不必要的麻烦。

比如说我有一个表关联了很多外键。要删除它的子表的一些数据。那我还得把主表数据给清了,才行。

但是不关联的话,想怎么删除怎么删除。先删除哪个,后删除哪个都无所谓。

这个是最大的用处。至于楼上说的什么影响性能,纯属扯淡。

 

但是如何不设置外键的话,你用像EF,Hibernate这类ORM框架的时候,就不那么方便了。

田麦成 | 园豆:1982 (小虾三级) | 2016-01-19 10:55
0

我们公司没有设置,或者换种说法,我们知道谁是谁的外键,但是数据库不知道。

 

数据库只知道主键。

nil | 园豆:660 (小虾三级) | 2016-01-20 15:41
0

每个项目的需要不一样,做需要分析,建立数据模型时,是否要建立外键,具体情况具体快定。

chenaran | 园豆:283 (菜鸟二级) | 2016-05-12 09:01
0

个人拙见,建议不用设置,因为数据库更多的职责是做存储,而不是去做业务逻辑。  所以你这些关系 如果是ef 可以通过映射指定,如果是sql那就更方便了,不管是维护还是优化,都能更好的下手! 那么你的那些业务逻辑就交给你的业务模型吧,根据业务场景和模型来约束。

码码乎乎 | 园豆:195 (初学一级) | 2017-01-10 14:15
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册