数据库设计具有多个类似人的关系

时间:2015-03-24 21:49:41

标签: mysql sql database entity-relationship

我有一个关系WitnessPoliceOfficerSuspect以及许多其他人类关系的数据库。在某些情况下,警察通常可能会成为嫌疑人。是否有必要建立另一种关系Person来存储所有人的相关数据,并指出所有类似人的关系中的人物对象?

2 个答案:

答案 0 :(得分:0)

我完全同意@ Guranjan的评论。

还要考虑一个人是否可以拥有相同角色的倍数,以及在什么情况下。您可能有一个person Suspect,其中case位于case以上。因此,每个case case-id crime-description date time etc case-person case-id person-id type (witness, suspect, officer) person person-id name dob address etc 可以有许多嫌疑人,证人和官员,并且每个人都指向一个独特的人。

因此,表格将是:

{{1}}

答案 1 :(得分:0)

不确定您的用例,但使用几个表对其进行建模是有意义的:PersonRole将是维度表 - Person包含您需要的详细信息存储个人(姓名,地址,dob等)Role,其中包含与所有可能的角色有关的信息(证人,警察,嫌疑人等)。

您还需要一个事实表,将这两个连接到一个特定的Scenario,例如:

人1 - 在情景1中 - 是一名警务人员

人2 - 在情景1中 - 是见证人

第3个人 - 在方案2中 - 是犯罪嫌疑人

人1 - 在情景2中 - 是见证人

第2个人 - 在情景2中 - 是见证人

Scenario表将包含人员和角色键