2

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

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

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

在此处输入图像描述

4

2 回答 2

2

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

多对多。

在您的联系人表中,您有一个 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)。

于 2013-02-20T16:15:02.647 回答
1

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

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

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

一个示例party_relationship.type 将是“联系人”

在此处输入图像描述

于 2013-02-20T19:38:07.047 回答