实体关系用户和联系人

时间:2013-02-20 15:28:06

标签: database-design entity-relationship

我正在尝试创建用户有联系人的数据库。我设计了下面的表格,我对这段关系应该是多么困惑,因为它看起来应该是一对多,但它也有多对多的关系。

在数据库中,每个用户都必须拥有联系人表,联系人是数据库中的其他用户。但是联系人必须属于每个用户。

这种情况下的关系是什么?

enter image description here

2 个答案:

答案 0 :(得分:1)

  

这种情况下的关系是什么?

多对多。

在“联系人”表格中,您有owner_id和contact_id。您可以轻松地将这些列称为user_1_id和user_2_id。

使用您的列名称,contact_id可以包含许多owner_id,而owner_id可以包含许多contact_id。

Contacts表上的群集(主要)索引是(owner_id,contact_id)。您还需要在Contacts表上定义一个唯一索引(contact_id,owner_id)。

答案 1 :(得分:1)

联系人是一个人,用户也是如此(公司是法人)。

一个人可以扮演用户的角色。

一个人可以在一段时间内与另一个人建立关系。

示例party_relationship.type将是“contact of”

enter image description here