在开发阶段该不该使用外键?如果不使用,理由是什么呢?

2016-09-26 16:57:05 +08:00
 ZiLong
2878 次点击
所在节点    问与答
18 条回复
liprais
2016-09-26 17:03:43 +08:00
因为 mysql 外键性能差
ilotuo
2016-09-26 17:08:12 +08:00
外接键盘太吵
loveyu
2016-09-26 17:10:01 +08:00
加上也是可以的!如果你能保证不加外键一样不出 bug
felixzhu
2016-09-26 18:48:13 +08:00
想好分库分表的时候怎么做
ZiLong
2016-09-26 18:52:40 +08:00
@felixzhu 这还会牵扯到分库分表
ZiLong
2016-09-26 18:53:00 +08:00
@loveyu 我就是担心这个不好保证吧
ZiLong
2016-09-26 18:53:14 +08:00
@ilotuo 恩,你说的太对了
ZiLong
2016-09-26 18:54:45 +08:00
@liprais 为什么性能差呢?有相关文档介绍过么?然后最佳的解决方案就是不用?
murmur
2016-09-26 19:14:54 +08:00
不用外键的话 级联删除这种自己做也行 反正互联网应用也不要事务的趋势 mongo 都可以上 自己删关联有什么不可以
ZiLong
2016-09-26 19:49:49 +08:00
@murmur 自己做级联删除,那表多了,关系复杂的话,比如你删除的记录关联的记录又关联了其他记录....这样的,级联靠自己,心智负担还是有点大.
loveyu
2016-09-26 21:57:06 +08:00
@ZiLong 感觉也是可行的!外键只做关联,不做级联操作,和没有外键的差别不大,还可以保证数据一致性
qwer1234asdf
2016-09-26 23:21:53 +08:00
表抽象的好,外键用着还是蛮爽的……
georgema1982
2016-09-27 04:30:49 +08:00
不使用外建,说明你没有用类的观点来审视你数据库的设计,一般这会导致你到后期才注意到表设计的不合理
iloveyou
2016-09-27 09:09:06 +08:00
现在不都是软删除?用外键?
ZiLong
2016-09-27 10:46:28 +08:00
@iloveyou 软删除,所有关联这条记录的都置空,还是以后查询的时候多个条件判定删除标志
ZiLong
2016-09-27 10:47:07 +08:00
@qwer1234asdf 我还是觉得外键用着爽,公司没用,我就 u 太明白
ZiLong
2016-09-27 10:49:22 +08:00
@georgema1982 可以详细说下你的观点么,或者有相关文档文章推荐
beidouxun
2016-09-27 11:33:23 +08:00
用外健啊!只是关联,不设置级联删除,因为自己写删除灵活。有时候上级删了,但是我想保留下级。

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

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

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

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

© 2021 V2EX