Database design 实体关系用户和联系人

Database design 实体关系用户和联系人,database-design,entity-relationship,Database Design,Entity Relationship,我正在尝试创建用户有联系人的数据库。我设计了下面的表格,我对关系应该是怎样的部分感到困惑,因为它看起来应该是一对多的关系,但它也是多对多的关系 在数据库中,每个用户都必须有一个联系人表,该表中的联系人是数据库中的其他用户。但是联系人必须属于每个用户 这种情况是什么关系 在这种情况下是什么关系 多对多 在Contacts表中,您有一个owner\u id和一个contact\u id。您可以轻松地调用这些列user\u 1\u id和user\u 2\u id 使用您的列名,联系人id可以有多个

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

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

这种情况是什么关系

在这种情况下是什么关系

多对多

在Contacts表中,您有一个owner\u id和一个contact\u id。您可以轻松地调用这些列user\u 1\u id和user\u 2\u id

使用您的列名,联系人id可以有多个所有者id,所有者id可以有多个联系人id


联系人表上的群集(主)索引是(所有者id,联系人id)。您还需要在Contacts表上定义一个唯一的索引(contact\u id,owner\u id)。

联系人是个人,用户也是(公司是法人)

一个人可以扮演用户的角色,也可以不扮演

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

例如,party_relationship.type为“联系人”