我不确定如何最好地表达这个问题,但基本上我有一个联系人表,而不是典型的 - 联系人有一个带有配偶信息的表的引用,以及一个带有孩子的表,我希望每个人都成为联系人,然后定义这些联系人(兄弟,姐妹,孩子,配偶等)之间的关系。因此,联系人将存在于单个表中,但我无法根据联系人ID和关系类型确定如何最好地定义关系。任何建议将不胜感激。
答案 0 :(得分:6)
CONTACTS
表contact_id
,pk CONTACT_RELATIONSHIP_TYPE_CODE
表contact_relationship_type_code
,pk description
CONTACTS_RELATIONS
表parent_contact_id
,pk,CONTACTS
table child_contact_id
,pk,CONTACTS
table contact_relationship_type_code
,CONTACT_RELATIONSHIP_TYPE_CODE
table 如果您认为需要为一对人支持多种关系类型,请将CONTACTS_RELATIONS.contact_relationship_type_code
列添加到复合主键
答案 1 :(得分:0)
这称为自联接,提供上面提到的功能非常常见且相当容易。看一下这个article。
答案 2 :(得分:0)
只需实现一个包含四列的交叉表 - key,contactid#1,contact id#2和relationship。
为什么这样?因为联系人可以有多种关系。