请问老师,为什么城市表中的省份ID没有使用外键约束?

来源:4-7 如何设计商品的库存?(一)

winfred_wu

2019-07-08

请问老师,为什么城市表中的省份ID没有使用外键约束?

写回答

2回答

神思者

2019-07-08

设计数据库都不使用外键约束,编写代码来控制逻辑一致性。因为使用外键容易产生外键闭环,一个数据库里面上百张表,大闭环套小闭环,哪个数据表的记录都不能删改了。所以就不使用外键。

1
1
winfred_wu
非常感谢老师的解惑!
2019-07-08
共1条回复

winfred_wu

提问者

2019-07-11

老师,您好!

问题1:在非新零售业务是否解决了闭环问题,就可以使用外键约束,还是都不推荐使用?

问题2:在使用ORM是操作数据库,外键约束有助于编码,我们应该如何权衡外键约束的使用?

1
1
神思者
在实际开发中绝大多数项目组都明确不使用外键约束,即便你现在能控制的很好不出现闭环结构,但是随着数据表增多,以及人员之间的更替,很容易出现闭环结构,所以还是放弃使用外键吧。 在ORM映射中不需要外键也能定义一对一和一对多的关系,建立引用关系就好了。
2019-07-11
共1条回复

阿里新零售数据库设计与实战 (升级版)

解锁“新零售”业务让数据库实战能力再上一层楼

2101 学习 · 701 问题

查看课程