数据库模型依赖关系

时间:2010-08-31 14:12:48

标签: sql-server database database-design

图片更加公正,所以我将从那开始。 Dependent Relation

因此,在我的Relation_Type表中,我有几种不同的类型(所有者,审阅者,审批者等) 在我的Relation_Status表中,我对某些类型有不同的状态:

  

Reviwer :(待定反馈,收到反馈)
   审批人:​​(待决决定,批准,否认)

我的问题是,如果关系类型为反馈将状态限制为仅反馈状态,我不知道如何强制执行的关系。
现在,这是建模的方式,反馈的关系类型可以具有任何逻辑不一致的状态。此外,并非所有类型都具有状态。

那么有关如何建模的任何提示,以便强制执行依赖?

谢谢,劳尔

3 个答案:

答案 0 :(得分:1)

您可以创建另一个表TypeStatus(ID, Type_Id, Status_Id)。对于_Type和_Status表,它有FK,而_Relation表对这个新表只有一个FK,而不是现有表的两个FK。您也可以从_Status表中删除_Type_Id列。我想。

答案 1 :(得分:0)

也许您需要一个将Status_IdType_Id结合使用的复合外键。

答案 2 :(得分:0)

我会从Project_Resource_Relation_Type_Id表中删除Project_Resource_Relation列。这会消除从Project_Resource_RelationProject_Resource_Relation_Type.

的关系

关系类型已经通过Project_Resource_Relation表与Project_Resource_Relation_Status表相关联。 Project_Resource_Relation_Status表已经强制执行类型和状态之间的关系。