Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么有人不在MySQL数据库中使用外键?_Mysql - Fatal编程技术网

为什么有人不在MySQL数据库中使用外键?

为什么有人不在MySQL数据库中使用外键?,mysql,Mysql,我对一些事情感到困惑,我一次又一次地看到开发人员,包括团队负责人告诉我,在他们的数据库中使用外键约束是一种不好的做法,它增加了“数据库的逻辑”,但这与我迄今为止所学的关于SQL的所有知识都背道而驰 我需要有人告诉我,如果我认为外键约束是一个主要的好处是错误的,或者如果我完全错了,如果是,为什么。 对我来说,为了确保数据完整性,您会拒绝任何不合理的数据,如果这是一个重复的问题,我很抱歉,但我并没有找到任何我满意的明确答案 认为外键约束是一个主要好处 该语句有点让我困惑,因为您是否将在表之间创建FK

我对一些事情感到困惑,我一次又一次地看到开发人员,包括团队负责人告诉我,在他们的数据库中使用外键约束是一种不好的做法,它增加了“数据库的逻辑”,但这与我迄今为止所学的关于SQL的所有知识都背道而驰

我需要有人告诉我,如果我认为外键约束是一个主要的好处是错误的,或者如果我完全错了,如果是,为什么。 对我来说,为了确保数据完整性,您会拒绝任何不合理的数据,如果这是一个重复的问题,我很抱歉,但我并没有找到任何我满意的明确答案

认为外键约束是一个主要好处

该语句有点让我困惑,因为您是否将在表之间创建FK约束取决于这些表是否包含/维护它们之间的任何关系;像学生有课程(或)员工在系下工作

如果这些表可以单独存在(独立),那么为什么要创建
外键
约束呢


根据您的评论:那么不使用外键的原因是什么。让你的潜在客户解释为什么不使用FK,而只是说它们不好。如果你的领导说他们不想强制执行外键约束,那么建议他们使用NOSQL数据库,如
MongoDB
Cassandra
,而不要使用
关系数据库

是的,当然,在我的特殊情况下,这是一个cron平台,我有活动和cron与之关联。因此,一个活动可以有多个cron等。。我使用了FK约束来确保在任何时候都不能插入无效的ID,并确保在有Cron引用活动时不能删除任何活动。@JonnySerra,如果有帮助,请参见回答中的编辑。@downvoter:想解释一下downvoteYou的原因吗?@juergend,我相信我做了。我标记了这个问题,因为它将导致基于意见的答案。而外键的使用,取决于一个人自己,它们是否有用,取决于具体情况。说清楚一点,我不认为这是一个坏问题。。。答案是不好的。我投票结束这个问题,因为这是一个牛肉。当然,我们是共享的。@juergend有时,如果您有其他方法来确保数据完整性,或者未链接记录的后果很小,它们就不是真正的问题。因此,到目前为止,答案是,没有FK,您就不能。没有FK就没有引用完整性。
NDB
存储引擎跨集群处理RI。