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

2019 年 3 月 25 日
 zhuwd
8708 次点击
所在节点    程序员
57 条回复
remarrexxar
2019 年 3 月 25 日
不加,逻辑中做实际的外键约束。
zycz2p
2019 年 3 月 25 日
没有做显式的外键关联
Yiki
2019 年 3 月 25 日
好像是不建议的
外键删除好麻烦- -。。
loongwang
2019 年 3 月 25 日
不要加,后期很痛苦
leo108
2019 年 3 月 25 日
抛开业务谈设计都是瞎扯淡
a54552239
2019 年 3 月 25 日
什么是外键?
Alexisused
2019 年 3 月 25 日
一般不加,后期很麻烦
ninja911
2019 年 3 月 25 日
建议不要加
LuoyeBug
2019 年 3 月 25 日
建模有,导入库的时候删除了。
cominghome
2019 年 3 月 25 日
写 django 的不让写外键怕是要凉,所以说还是看业务来
king1101
2019 年 3 月 25 日
不加,用逻辑约束
loveCoding
2019 年 3 月 25 日
加个逻辑 id 吧
fortunezhang
2019 年 3 月 25 日
从来没有用过。
amwyyyy
2019 年 3 月 25 日
DBA 说不能加
l00t
2019 年 3 月 25 日
不加。
zjsxwc
2019 年 3 月 25 日
ORM 自动加外键的路过,其实还行
keepcleargas
2019 年 3 月 25 日
不加
l00t
2019 年 3 月 25 日
@banxi1988 #12 外键和数据一致性有什么关系?
blueorange
2019 年 3 月 25 日
zjsxwc
2019 年 3 月 25 日
@l00t #38

主要是外键可以级联删除和更新,比如“ 1 对 n 删 1 ” “我把某个主贴删掉,那么所有该贴下的回复也就被自动删掉了”,但是互联网项目基本都是“软”删除,于是这个 feature 很难用上。

还有就是碰到数据量大了需要分库分表的时候,外键就是个麻烦。


外键主要好处是我们基于 ORM 开发时完全自动化,程序员只要专注于业务领域对象就行,根本不需要浪费时间去管 dba 的活。

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

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

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

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

© 2021 V2EX