![]() | 1 workaholic 2013-03-13 10:59:39 +08:00 看应用规模了,数据量太大就要考虑性能了 |
![]() | 2 pythonee 2013-03-13 17:07:17 +08:00 我司没有用,完全拿数据库当NoSQL使,奶奶的 |
![]() | 3 zhuf 2013-03-13 17:56:01 +08:00 不要 |
![]() | 4 zenwong 2013-03-13 18:00:21 +08:00 ![]() 个人认为外键这种东西是理想化情况下的东西,在实际开发中你可能遇到需求上的一些问题,使你无法理想化 |
![]() | 5 zerox 2013-03-13 21:36:43 +08:00 反正我司是不使用外键的,从头到尾没人提过这事,总的来说是有性能影响的,不用的话也没觉得有什么问题。ls说的好,外键是理想化情况下的东西 |
![]() | 6 zer4tul 2013-03-16 04:45:06 +08:00 数据规模小,要求开发效率的话,可以用。 数据规模大的话就不要用了,对执行效率的影响挺大。另外就是dump出来source的时候麻烦。 |
![]() | 7 hilyjiang 2013-03-16 08:57:16 +08:00 ![]() 1. 要 开发及测试环境使用,有助于保证生产环境中的数据完整性 2. 不要 生产环境中,考虑性能问题,可以删除外键约束 |
![]() | 9 atom 2013-03-16 10:39:57 +08:00 我司也是从来不用外键,我司更看重事务。 |
![]() | 10 binjoo 2013-03-17 09:09:47 +08:00 总感觉外键很麻烦。。 |
![]() | 11 saharabear 2013-03-17 09:20:36 +08:00 咱们这里讨论问题不加前提条件的吗? 银行,金融业务能不加外键吗? 个别时候银行金融业务是开发过程用外键,运行环境部署删除外键。不过大部分都会强制主外键约束。 互联网产品,就几个文章的东西,就算再复杂的文章,基本上为了性能,用冗余,不用外键。但有一些强约束的地方,就必须用外键。 |
![]() | 12 saharabear 2013-03-17 09:21:23 +08:00 补充一下,银行和金融也不只是用DB2的,也有Oracle和MySQL。 |
![]() | 13 wd 2013-03-17 12:41:42 +08:00 外键是用来限制数据完整性的(包括插入和删除的时候),如果你对这个要求没那么高,那么可以不要,还能节省一些性能。 |
14 daweiba 2013-03-17 15:38:11 +08:00 |
![]() | 15 i36lib 2016-04-15 12:14:17 +08:00 从 Oracle 企业实施套件( Oracle EBS )学来的经验,不用,只是在代码罗就里面保证这种约束。 |
![]() | 16 i36lib 2016-04-15 12:15:20 +08:00 但是要求文档或者注释要及时跟上,不然难以维护。 |