大家在设计数据库的时候,一般会不会加外键

2019-03-25 12:24:09 +08:00
 zhuwd
7933 次点击
所在节点    程序员
57 条回复
ChoateYao
2019-03-25 12:26:39 +08:00
没有 DBA,不加外键。

有 DBA 看 DBA 意见。
rexyan
2019-03-25 12:35:43 +08:00
DBA 说 mysql 中不要用
allanzhuo
2019-03-25 12:39:52 +08:00
强烈反对使用外键的懒政行为
blueskea
2019-03-25 12:41:59 +08:00
我们没加,说是影响性能
passerbytiny
2019-03-25 12:49:13 +08:00
只要不是纯数据库编程,就不要加任何跟性能优化无关的约束,比如外键。
cylmsun
2019-03-25 12:50:28 +08:00
没 DBA 加了有过教训,现在新开的都不用了
Raymon111111
2019-03-25 12:51:10 +08:00
不要用外键

只用逻辑外键
salamanderMH
2019-03-25 12:52:24 +08:00
程序保证外键依赖就可以了
mooncakejs
2019-03-25 13:00:42 +08:00
业务系统会加,互联网项目不加
Hstar
2019-03-25 13:02:33 +08:00
内部用用的没性能要求的小项目加,预计有性能要求的不加
fox0001
2019-03-25 13:02:48 +08:00
加了外键,数据维护很麻烦
banxi1988
2019-03-25 13:05:05 +08:00
以下是我个人意见,如有问题,欢迎指出:

1. 加是规范,不加是反模式。
2. 过早优化是万恶源,有些人担心性能问题不加,我建议先加,有性能问题再具体分析。
3. 数据据的一致性比较重要的话,建议加,做正确的事情确实是要多付出点代价,但是一般是值得的。
niubee1
2019-03-25 13:10:41 +08:00
外键可以强制维护关系数据的完整性, 但是增加数据维护的成本
tabris17
2019-03-25 13:11:33 +08:00
ORM 框架自己生成,它愿意加就加
qsbaq
2019-03-25 13:15:36 +08:00
从没用过外检。
haofei
2019-03-25 13:18:47 +08:00
非互联网公司没有高并发要求可以使用
tongz
2019-03-25 13:18:59 +08:00
1. 对数据的一致性有极高的要求
2. 对性能要求较低
满足以上条件可以加
micean
2019-03-25 13:19:34 +08:00
部分加部分不加
Mac
2019-03-25 13:20:03 +08:00
最早期用过,但不利于扩展字段,后来彻底摒弃
loading
2019-03-25 13:20:35 +08:00
外键是啥玩意,我都是自己 join

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/548250

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX