关系与检查约束

发布于 2024-11-17 05:13:45 字数 441 浏览 0 评论 0原文

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

为了保持诚信,哪种方法更好?

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

  2. 向“状态”表添加一列以指示其适用的实体(V 表示空缺,A 表示操作)。对“空缺”和“操作”表使用检查约束,以确保应用于记录的任何 StatusID 都适合该实体类型。

I have a table in my database that holds status names and descriptions (called Status). I have two other tables, VacancyRequest and ActionRequest, each representing a different type of entity but with each having its own status. The possible statuses of one entity do not necessarily match the possible statuses of the other entity.

In order to maintain integrity, which is the better approach?

  1. Create two additional tables, VacancyRequestStatus and ActionRequestStatus, each with one column -- StatusID. These two tables would contain only the StatusIDs applicable to their respective entity type. Then, create a foreign key relationship between the Vacancy and Action tables and their respective status tables. Each status table would have an FK back to the main status table.

  2. Add a column to the Status table to indicate the entity it applies to (V for vacancy, A for action). Use check constraints on the Vacancy and Action tables to ensure that any StatusID applied to a record is appropriate for that entity type.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

夕嗳→ 2024-11-24 05:13:45

由于“行动状态”和“空缺状态”没有以任何方式链接,因此第一种方法更简单。

Since Action Status and Vacancy Status are not linked in any way, the first method is more straightforward.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文