1. 要:
保证数据完整性
2. 不要:
容易开发和维护
保证数据完整性
2. 不要:
容易开发和维护

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