首页 > 解决方案 > 关于正确数据结构的问题

问题描述

我有一个请求表。

对于每个请求,有 2 个不同角色的人与之相关,详细信息应保持完全相同。

人们的详细信息出现在另一个表中。

为链接到人员表的每个人在请求表中放置 2 个关键字段是否正确

或者最好将关键字段放在persons表中?(每个人只能有一个请求)

你会这样做吗:

在此处输入图像描述

或者像那样

在此处输入图像描述

提前致谢

标签: sqlsql-serverdatabase

解决方案


您的设计的典型解决方案是维护三个表。除了 person 和 requests 表(用于存储有关人员和请求本身的数据)之外,还有第三个联结表,用于维护人员和请求之间的关系。这是该联结表的外观:

person_id | request_id
1         | 1
2         | 1
3         | 2
4         | 2

person_id可以使用联结表中的唯一约束来强制执行只有一个人有一个请求的要求。

将每个请求限制为只有两个人有点棘手,但可以使用插入前触发器来完成。


推荐阅读