leader 竟然让我们用外键

2019-12-05 11:54:10 +08:00
 InkAndBanner

楼主应届生,第一份工作,之前在 jd 实习时候记得都是严禁外键的,都在业务层解决.前天入职正好赶上 leader 和主程在设计表结构,然后说"我知道现在很多公司都不用外键,但是我觉得我们项目还是用外键,避免脏数据嘛" [leader 是个老程序员...] , 现在显示和我接受到的教育开始冲击了......有点怀疑人生. 想问问大家你们工作中的项目有没有用过外键啊? 怎么处理这种技术方面的"厌恶感"啊

12469 次点击
所在节点    问与答
102 条回复
wd
2019-12-05 11:58:20 +08:00
不爱用就换一个不用的公司
Hstar
2019-12-05 11:58:42 +08:00
辩证的看外键,它的确方便了数据的关联,缺点是在数据上量之后会引发严重的效率问题,所以如果一个项目可预期的完全没有这方面的顾虑,为什么不上外键呢
opengps
2019-12-05 11:58:57 +08:00
没经历过大项目的偷懒小领导
LxExExl
2019-12-05 11:59:03 +08:00
用了有什么坏处吗?
shifttacn
2019-12-05 11:59:47 +08:00
你这个不是厌恶感
是优越感
b821025551b
2019-12-05 12:00:15 +08:00
为了工资,屎都能吃。
lhx2008
2019-12-05 12:00:25 +08:00
没有什么范式的,只有合不合适,你可以跟你 leader 提,只是别说别人不用就好了。我倒觉得没所谓。
wangxiaoaer
2019-12-05 12:00:51 +08:00
别把互联网那一套东西当神了,有多少应用的量级达到那些互联网厂商的?
InkAndBanner
2019-12-05 12:01:18 +08:00
@Hstar 数据量一定会大起来的 用户有银行的.
InkAndBanner
2019-12-05 12:01:53 +08:00
@shifttacn 倒真不是优越感 , 只是实际开发和我原来学到的在进行冲击
InkAndBanner
2019-12-05 12:02:05 +08:00
@wangxiaoaer 有道理
InkAndBanner
2019-12-05 12:04:03 +08:00
@b821025551b 哈哈 反正我不太愿意为五斗米折腰
Just1n
2019-12-05 12:04:50 +08:00
很好奇,为什么 JD 不允许使用外键,你就认为所有的公司都不应该使用外键?(或者是我理解错了你的意思?)
还有这种“厌恶感”从何而来?

在 JD 接受的教育是不使用外键,那么你有没有深思过 JD 为什么不允许使用外键?
在当前公司要使用外键,那么你有没有想过(或者直接问 Leader )为什么要使用外键?(除了避免脏数据之外的理由)
使用和不使用外键的优缺点是什么?适用场景分别是什么?

如果只是一味的接受 JD 给的教育,觉得外键是没有必要的,那么当初数据库的设计者又为什么要设计出外键这么一个东西呢?
monsterxx03
2019-12-05 12:13:13 +08:00
不用外键是考虑到日后 scale out, db 做 sharding, 不是所有项目都有这个需求, 外键有外键的好处, 现在用了日后改造也不是不行, 能活下去的项目没有一步到位的.
InkAndBanner
2019-12-05 12:17:35 +08:00
@Just1n 第一个问题 外键在设计初期肯定是没问题, 但是随着发展,外键出现了很多问题,性能上的 数据完整性的....所以为什么不在业务层解决呢?
第二个问题 厌恶感就是觉得有人让你接受 /并且使用你不喜欢的东西
第三个在第一个中提到了
第四个 没问诶
第五个 这个随便百度一搜能搜出来一万个缺点吧
我觉得不是一昧的接受 我是觉得确实有道理才接受的啊, 形成了"技术价值观" , 而且我拒绝存在及合理这个概念
InkAndBanner
2019-12-05 12:17:54 +08:00
@monsterxx03 是哦
wysnylc
2019-12-05 12:23:17 +08:00
外键很痛苦而且外面的趋势是不用外键,你现在返祖归宗的代价就是与时代格格不入
如果你还想为了以后的发展,建议离职
上面说外键好的基本上技术是不会革新的,35 岁淘汰说的就是他们
sadfQED2
2019-12-05 12:24:15 +08:00
先思考下你以前学到的是不是对的,为什么不用,什么情况不用,而且 mysql 这么成熟的一个数据库,既然他留着这个功能那就是有道理的。
echo1937
2019-12-05 12:29:37 +08:00
不要少见多怪,过早的优化是万恶之源。

淘宝的第一个版本是 lamp 架构(看子柳的书),几乎没有遵循绝大部分现在的“阿里开发手册”。
Hellert
2019-12-05 12:30:32 +08:00
既然存在外键,肯定有适用场景。

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

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

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

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

© 2021 V2EX