了解到很多公司禁止使用外键,现在使用关系型数据库是否还应该使用外键、触发器、存储过程等?

2014-12-18 13:43:46 +08:00
 Feiox
没企业工作经验的人特来讨教 ~
感觉,没有关系的数据库还是关系型数据库么 ~
3782 次点击
所在节点    数据库
53 条回复
sun1991
2014-12-18 14:03:54 +08:00
具体情况具体分析, 绝对化要不得.
min
2014-12-18 14:06:22 +08:00
不用fk?完全不能理解啊

哪些公司这么搞,姿势很奇特。
Feiox
2014-12-18 14:13:48 +08:00
@min 一个教我们“大型数据库技术” 的老师,是从华为退下来的。她说,公司里禁止使用外键。。。半信半疑 ~
hcymk2
2014-12-18 14:16:20 +08:00
关系可以通过代码来维护,不过 sql也可以认为是代码。
skydiver
2014-12-18 14:19:33 +08:00
互联网公司一般都不用外键。传统企业应用也许用的多一些。
pengweiqhca
2014-12-18 14:22:10 +08:00
使用外键会带来性能问题。我们公司使用逻辑外键,但有些核心地方还是使用真实外键
txlty
2014-12-18 14:23:24 +08:00
数据服务器从单台扩展到多台(分库)时会有麻烦吧?
ericls
2014-12-18 14:25:38 +08:00
如果不用外键,, 那为何不用nosql
sixbyte
2014-12-18 14:26:59 +08:00
感觉一致性要求高的应用还是用外键会比较好
janwen
2014-12-18 14:36:30 +08:00
互联网公司不太喜欢用,企业开发还是喜欢用
scusjs
2014-12-18 14:40:09 +08:00
因为用那些东西会导致多表锁死。访问量小没事,大了就麻烦了,所以这些东西基本靠程序逻辑进行处理
avichen
2014-12-18 14:43:31 +08:00
企业大数据量的应用下,比如单表千万条记录数以上的都不用外键,一般用业务级的代码逻辑来控制。
mcfog
2014-12-18 14:47:35 +08:00
压力大了以后,MySQL基本沦为文档数据库,基本只有按主键CRUD的功能

外键啊join啊group啊子查询啊基本一用死一片

即使可以通过合理的评估、索引的规划等各种手段来让这些机制能跑得动,但在有成千上万开发的公司里,哪有足够的人来把关呢,还是直接完全禁止比较高效一点
sujin190
2014-12-18 14:57:07 +08:00
一直觉得用存储过程的都是坑货~
chilaoqi
2014-12-18 15:07:02 +08:00
等做数据整合,分库的时候,外键很麻烦,等哭
hdjdcyl
2014-12-18 15:16:29 +08:00
一直不懂啥是数据库外键。。。后来发现我在程序里写的功能就是实现外键的功能。。。

数据库如果设置了外键,不如在代码进行关联灵活。
hdjdcyl
2014-12-18 15:16:29 +08:00
一直不懂啥是数据库外键。。。后来发现我在程序里写的功能就是实现外键的功能。。。

数据库如果设置了外键,不如在代码进行关联灵活。
zeeler
2014-12-18 15:20:41 +08:00
现在还有人用外键啊,不能理解啊,今后系统扩展怎么搞啊,会头疼死,或者大量重构代码啊
akira
2014-12-18 15:27:33 +08:00
谁规定关系型数据库不能当nosql来用的?
20150517
2014-12-18 15:51:08 +08:00
我们有关系数据库,外键有时还是用的,但只用在很小的人工生成的表上,一些从log上import进来的表,不可能用外键,只能roll up了用的时候再sp里join或代码上join

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

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

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

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

© 2021 V2EX