sql-server - 数据库模型依赖关系

标签 sql-server database database-design

图片更公平,所以我将从图片开始。 Dependent Relation

因此,在我的 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/

相关文章:

子查询与声明中的 SQL UDF 速度

database-design - 单表继承是解决我的 Rails 问题的正确解决方案吗?

sql - SELECT 查询是否总是以相同的顺序返回行?带聚簇索引的表

sql-server - 使用生成的 DDL 时为 "<xyz> must be the first statement in a query batch"

javascript - 为什么我的 InDesign Javascript 无法完全运行?

mysql - 列出继承? SQL 和类

mysql - 由于语法错误,我无法创建 SQL 表

database - 如何将数学表达式/解释存储到数据库中

mysql - 数据库设计,最佳实践,需要建议

SQL Server 添加索引而不删除表