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

2019-03-25 12:24:09 +08:00
 zhuwd
7735 次点击
所在节点    程序员
57 条回复
remarrexxar
2019-03-25 13:25:05 +08:00
不加,逻辑中做实际的外键约束。
zycz2p
2019-03-25 13:29:31 +08:00
没有做显式的外键关联
Yiki
2019-03-25 13:29:43 +08:00
好像是不建议的
外键删除好麻烦- -。。
loongwang
2019-03-25 13:55:56 +08:00
不要加,后期很痛苦
leo108
2019-03-25 14:25:10 +08:00
抛开业务谈设计都是瞎扯淡
a54552239
2019-03-25 14:38:01 +08:00
什么是外键?
Alexisused
2019-03-25 14:49:41 +08:00
一般不加,后期很麻烦
ninja911
2019-03-25 15:25:59 +08:00
建议不要加
webluoye
2019-03-25 15:28:09 +08:00
建模有,导入库的时候删除了。
cominghome
2019-03-25 15:29:42 +08:00
写 django 的不让写外键怕是要凉,所以说还是看业务来
king1101
2019-03-25 15:30:22 +08:00
不加,用逻辑约束
loveCoding
2019-03-25 16:07:01 +08:00
加个逻辑 id 吧
fortunezhang
2019-03-25 16:37:18 +08:00
从来没有用过。
amwyyyy
2019-03-25 16:55:07 +08:00
DBA 说不能加
l00t
2019-03-25 16:57:27 +08:00
不加。
zjsxwc
2019-03-25 16:57:53 +08:00
ORM 自动加外键的路过,其实还行
keepcleargas
2019-03-25 16:59:08 +08:00
不加
l00t
2019-03-25 17:00:00 +08:00
@banxi1988 #12 外键和数据一致性有什么关系?
blueorange
2019-03-25 17:16:26 +08:00
zjsxwc
2019-03-25 17:20:12 +08:00
@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