关闭。这个问题是opinion-based .它目前不接受答案。
想改善这个问题吗?更新问题,以便可以通过 editing this post 用事实和引文回答问题.
去年关闭。
Improve this question
在一个完美的世界中,真的需要外键约束吗?
最佳答案
外键强制执行 一致性 在 RDBMS 中。也就是说,没有子行可以引用不存在的父行。
有一种观点认为应用程序代码应该强制执行一致性规则,但这既低效又容易出错。即使您的代码是完美的、没有错误的并且从不引入损坏的引用,您如何确定访问同一数据库的其他人的代码也是完美的?
在 RDBMS 中强制执行约束时,您可以依赖一致性。换句话说,数据库从不允许提交破坏引用的更改。
当应用程序代码强制执行约束时,您永远无法确定数据库中没有引入任何错误。您发现自己经常运行 SQL 脚本来捕获损坏的引用并更正它们。为此,您必须编写的额外代码远远超过了 RDBMS 管理一致性的任何性能成本。
关于sql - 是否需要外键约束?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1512219/