带约束的子类型引用完整性
独占子类型
- 在基本类型中实现“鉴别器”列指示存在哪个子类型行
- 使用 SQL CHECK CONSTRAINT 来确保有效的鉴别器范围(例如,对于传感器:IN ("B", "C", "D"))。
- 基本类型的PK 确保唯一性,鉴别器防止重复的子类型行。
- 子类型中的检查约束调用用户定义函数 (UDF),用于验证基本类型中是否存在 PK 鉴别器。
- 这确保每个 PK 只存在有效的子类型。
- 强制执行“每个基本类型必须具有至少一种子类型”,带有事务代码。
非排他性子类型
- 不需要鉴别器。
- 子类型的存在通过子类型表上的存在检查来验证。
- 通常的主键,外键和范围检查约束充分支持非独占子类型。
防止独占子类型中的无效鉴别器更新(在回复评论时解决)
- 使用带有 ACID SQL 事务的开放架构标准。
- 禁止直接 SQL 更新数据库。
- 强制插入基本类型单个事务中的子类型。
- 在更新其鉴别器之前显式删除先前的子类型。
- 仅向用户 ROLES 授予执行这些事务的 EXEC 权限。
此确保鉴别器列免受无效更新的影响,从而维护数据库的完整性。
以上是如何在 SQL 中维护独占和非独占子类型的引用完整性?的详细内容。更多信息请关注PHP中文网其他相关文章!