外键将一个表中的记录链接到另一个表中的记录。订单表有一个 customer_id 字段。该字段是一个外键,指向客户表的主键。这种链接确保每个订单都属于一个真实的客户。如果没有它,订单可能会引用不存在的客户。数据库会强制执行这种关联。
外键的作用远不止记录关系。它们还能强制执行引用完整性。如果您尝试插入一个 customer_id 不存在于 customer 表中的订单,数据库会拒绝该操作。如果您尝试删除一个有订单的客户,数据库会根据规则阻止删除操作或级联删除。这种强制执行机制可以防止出现孤立记录和数据不一致的情况。外键还有助于提升查询性能。数据库可以利用这种关系来优化连接操作。并非所有数据库都强制执行外键。一些 NoSQL 数据库将引用完整性的维护留给应用程序。这赋予了开发人员更大的灵活性,但也带来了更大的责任。应用程序必须确保引用的有效性。如果失败,数据就会变得不一致。外键是一种约束。约束本身并不方便,但当它能够防止灾难发生时,就显得尤为重要。
外国关键规则
- 限制——如果存在引用,则阻止删除
- 级联——自动删除或更新引用记录
- 设置空值 — 删除时将外键设置为空值
- 不采取任何行动——允许操作并稍后检查。
外键既是连接也是保证。连接用于连接不同的表,保证用于确保表之间的一致性。
Comments
No comments yet. Be the first to share a thought.
Leave a comment