我的数据库中有一个表,其中包含状态名称和描述(称为状态)。我还有另外两个表,VacancyRequest和ActionRequest,每个表代表不同类型的实体,但每个都有自己的状态。一个实体的可能状态不一定与另一个实体的可能状态相匹配。
为了保持诚信,这是更好的方法吗?
创建另外两个表,VacancyRequestStatus和ActionRequestStatus,每个表都有一列 - StatusID。这两个表仅包含适用于其各自实体类型的StatusID。然后,在Vacancy和Action表及其各自的状态表之间创建外键关系。每个状态表都有一个FK回到主状态表。
在状态表中添加一列以指示它适用的实体(V表示空缺,A表示操作)。在Vacancy和Action表上使用检查约束,以确保应用于记录的任何StatusID适合该实体类型。
答案 0 :(得分:2)
由于行动状态和空缺状态没有任何关联,第一种方法更直接。