下面的用例一直困扰着我,它总是让我感到烦恼,我真的不知道解决方案。最近我又遇到了它:
object
有0个或更多objectProperties
;object
用于1个或多个operations
;operations
的一些使用他们正在操作的objectProperties
的1个或多个object
(0个或更多关系);objectProperty
将用于1个或多个operations
。
这引出了以下数据库设计:
注意:表名用于说明问题
我的问题是:
*)我可以在我的应用程序代码中强制执行此规则,但这让我觉得相当脆弱,所以我宁愿看到我的数据模型中的约束强制执行的完整性,如果可能的话。
答案 0 :(得分:1)
您的图表正确表示了规定的要求。
要强制引用完整性,您可以将objectId
添加到operationUsingObjectProperty
表。然后,您可以在objectId, objectPropertyId
和objectId, operationId
上创建复合外键约束。