我有一个关系Witness
,PoliceOfficer
,Suspect
以及许多其他人类关系的数据库。在某些情况下,警察通常可能会成为嫌疑人。是否有必要建立另一种关系Person
来存储所有人的相关数据,并指出所有类似人的关系中的人物对象?
答案 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)
不确定您的用例,但使用几个表对其进行建模是有意义的:Person
,Role
将是维度表 - Person
包含您需要的详细信息存储个人(姓名,地址,dob等)Role
,其中包含与所有可能的角色有关的信息(证人,警察,嫌疑人等)。
您还需要一个事实表,将这两个连接到一个特定的Scenario
,例如:
人1 - 在情景1中 - 是一名警务人员
人2 - 在情景1中 - 是见证人
第3个人 - 在方案2中 - 是犯罪嫌疑人
人1 - 在情景2中 - 是见证人
第2个人 - 在情景2中 - 是见证人
Scenario
表将包含人员和角色键