图片更加公正,所以我将从那开始。
因此,在我的Relation_Type表中,我有几种不同的类型(所有者,审阅者,审批者等) 在我的Relation_Status表中,我对某些类型有不同的状态:
Reviwer :(待定反馈,收到反馈)
审批人:(待决决定,批准,否认)
我的问题是,如果关系类型为反馈将状态限制为仅反馈状态,我不知道如何强制执行的关系。
现在,这是建模的方式,反馈的关系类型可以具有任何逻辑不一致的状态。此外,并非所有类型都具有状态。
那么有关如何建模的任何提示,以便强制执行依赖?
谢谢,劳尔
答案 0 :(得分:1)
您可以创建另一个表TypeStatus(ID, Type_Id, Status_Id)
。对于_Type和_Status表,它有FK,而_Relation表对这个新表只有一个FK,而不是现有表的两个FK。您也可以从_Status表中删除_Type_Id列。我想。
答案 1 :(得分:0)
也许您需要一个将Status_Id
与Type_Id
结合使用的复合外键。
答案 2 :(得分:0)
我会从Project_Resource_Relation_Type_Id
表中删除Project_Resource_Relation
列。这会消除从Project_Resource_Relation
到Project_Resource_Relation_Type.
关系类型已经通过Project_Resource_Relation
表与Project_Resource_Relation_Status
表相关联。 Project_Resource_Relation_Status
表已经强制执行类型和状态之间的关系。