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

15 浏览
0 Comments

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

我对一件事感到困惑,一次又一次地,我看到开发人员,包括团队领导告诉我,在他们的数据库中使用外键约束是不好的做法,说它会给数据库增加"逻辑",但这与我迄今为止学到的SQL的一切都相违背...

我需要有人告诉我,如果我认为外键约束是一个重要的好处,那么我是错了,还是完全错了,如果是这样,为什么。

对我来说,保证数据完整性就意味着拒绝任何不合理的数据存在,这对我来说是有道理的。如果这是一个重复的问题,我很抱歉,但我没有找到任何令我满意的明确答案。

0
0 Comments

有时候,人们可能不使用MySQL数据库中的外键的原因是因为他们认为外键约束并不是一个重要的好处。但是,是否创建表之间的外键约束取决于这些表是否包含/维护彼此之间的任何关系。如果这些表可以单独存在,那么为什么还要创建FOREIGN KEY约束呢?

如果你的领导说不想使用外键约束,那么建议他们使用类似MongoDB或Cassandra这样的NOSQL数据库,而不是使用关系型数据库。

在某些特定情况下,外键约束是有用的。例如,在一个Crons平台中,有Campaigns和与之相关的Crons。因此,一个Campaign可以有多个Crons等等。我使用外键约束来确保在任何时候都不能插入无效的ID,并确保在有任何引用它的Cron时不能删除任何Campaign。

如果你想要确保数据的完整性,并禁止已知有错误的更新或插入操作,那么使用外键约束是很有用的。但如果你有一些假设,你可以展示一下,这样会更清楚。总之,如果你想要确保数据的完整性,并禁止已知有错误的更新或插入操作,请使用外键约束。

0