首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >数据库设计:识别外键的意义是什么?

问数据库设计:识别外键的意义是什么?
EN

Stack Overflow用户
提问于 2010-11-24 08:55:45
回答 6查看 2K关注 0票数 2

我正在使用MySQL工作台为我的数据库建模。在它中,我可以选择通过识别外键等来创建关系,这有什么意义呢?我可以在没有这些关系的情况下很好地运行我的查询。

我的表确实有一个用于外键的实际列,只是我没有在MySQL工作台中定义它们。意思是,我没有那些连接表的线。

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2010-11-24 09:05:22

外键可以做一些事情。最明显的是,它们为您提供了内置的数据完整性,正如Macy Abbey提到的那样。

有趣的是,您最喜欢的RDBMS的查询优化器也可以使用外键等约束来执行额外的优化。基本上,数据库可以确定它是否可以比您更好地编写查询。外键的存在使数据库可以做出这些假设。你可以在Do Foreign Key Constraints Help Performance?上找到一个很好的例子。虽然该链接是特定于SQL Server的,但无论使用哪种数据库引擎,原理都是相同的。

票数 4
EN

Stack Overflow用户

发布于 2010-11-24 09:00:37

外键对于确保数据完整性很有用。如果您定义了它们,数据库本身将确保不允许将无效的外键值插入到表中。

票数 3
EN

Stack Overflow用户

发布于 2010-11-25 13:20:00

如果你没有外键,你就没有关系。因此,您没有关系数据库;它是一个没有完整性的鱼缸,您不会拥有关系数据库的功能(耶利米的答案只是众多答案中的一项)。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4262554

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档