关系与检查约束

时间:2011-06-22 18:44:24

标签: database-design constraints relational-database data-integrity

我的数据库中有一个表,其中包含状态名称和描述(称为状态)。我还有另外两个表,VacancyRequest和ActionRequest,每个表代表不同类型的实体,但每个都有自己的状态。一个实体的可能状态不一定与另一个实体的可能状态相匹配。

为了保持诚信,这是更好的方法吗?

  1. 创建另外两个表,VacancyRequestStatus和ActionRequestStatus,每个表都有一列 - StatusID。这两个表仅包含适用于其各自实体类型的StatusID。然后,在Vacancy和Action表及其各自的状态表之间创建外键关系。每个状态表都有一个FK回到主状态表。

  2. 在状态表中添加一列以指示它适用的实体(V表示空缺,A表示操作)。在Vacancy和Action表上使用检查约束,以确保应用于记录的任何StatusID适合该实体类型。

1 个答案:

答案 0 :(得分:2)

由于行动状态和空缺状态没有任何关联,第一种方法更直接。