图片更公平,所以我将从图片开始。
因此,在我的 Relation_Type 表中,我有几种不同的类型(所有者、审阅者、批准者等)。
在我的 Relation_Status 表中,某些类型的状态不同:
Reviwer: (Pending Feedback, Feedback Received)
Approver: (Pending Decision, Approved, Denied)
我的问题是,我不知道如何执行这样的关系:如果关系类型是反馈,则将状态限制为仅反馈状态'。
现在,这种建模方式的反馈关系类型可以具有逻辑不一致的任何状态。此外,并非所有类型都有状态。
关于如何对此建模以强制执行依赖性的任何提示?
谢谢,劳尔
最佳答案
您可以创建另一个表 TypeStatus(ID, Type_Id, Status_Id)
。 _Type 和 _Status 表会有 FK,而 _Relation 表会有一个 FK 到这个新表,而不是两个 FK 到现有表。我想,您还可以从 _Status 表中删除 _Type_Id 列。
关于sql-server - 数据库模型依赖关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3609846/