Ste*_*ven 4 oracle database-design
可以通过约束在Oracle中完全建模一对一关系吗?换句话说,PARENT实体总是完全具有子实体的n-CHILDREN,并且每个孩子只有一个父母.
将n视为数据库常量.
即使多个会话正在进行更新,这样做也是非常容易的.如果你尝试使用触发器,你会陷入混乱,Oracle的声明性约束不足以表达这一点.
它可以按如下方式完成: -
然后,您可以执行一系列插入/更新/删除语句.提交时,物化视图将刷新,如果不满足条件,则此时将出现约束违规错误.
额外的一点技巧是只包括未通过约束的行进入物化视图(HAVING count(ChildId)<> 5),这样就不会浪费任何存储空间.