“参照完整性”(Referential Integrity,也称引用完整性)是关系型数据库中用于维护表与表之间关联关系正确性的一组约束规则,主要通过**外键(Foreign Key)**实现。
它可以防止以下几类常见错误和数据问题:
防止: 在子表中插入一个指向不存在的主表记录的外键值。
例:订单表(子表)的 user_id 指向用户表(主表),若用户表中没有 id=999 的用户,参照完整性会阻止插入 user_id=999 的订单。
防止: 直接删除主表记录,而子表中仍有依赖它的数据。
例:删除某用户,但该用户还有历史订单存在。参照完整性会拒绝删除,或按设定级联处理(如级联删除订单)。
防止: 修改主表的主键值,导致子表外键“找不到家”。
例:把用户 id=1 改成 id=100,但订单表仍引用 id=1。参照完整性可禁止修改,或级联更新子表外键。
防止: 业务上不应存在的关系被写入数据库。
例:员工表的 department_id 必须是部门表中存在的部门,避免出现“不属于任何部门的员工”或“虚构部门”。
防止: 因脏数据(如指向不存在的类别)导致:
即使应用代码做了判断,数据库层的参照完整性仍能作为最后一道防线,防止:
参照完整性通常配合以下动作使用:
RESTRICT / NO ACTION:禁止破坏关系的操作CASCADE:级联删除或更新SET NULL:置外键为 NULL(需允许为空)如果你说的是“代码/文档中的参照完整性”或“其他领域(如需求、架构)的参照完整”,也可以告诉我具体场景,我可以进一步展开。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。