XREF在MySql中的同一个表

时间:2017-03-30 06:34:25

标签: mysql

我需要创建一个具有以下简单要求的MySql关系数据库:

  • 客户可以拥有许多自己是客户的SUBSCRIBER

  • 客户可以拥有许多本身就是客户的联系

看起来我需要两个XREF表,但它们是xreferencing同一个表(CLIENT)!

到目前为止,我似乎能够设计出来的唯一方法如下:

xreffing the same table

这似乎不切实际,因为CONTACT和SUBSCRIBER都只引用了一个客户端。

我觉得我在这里遗漏了一些明显的东西......

*编辑*

根据下面的第一条评论,我推导出以下简化表...

Solution

1 个答案:

答案 0 :(得分:0)

您可以定义clients有多个subscriberscontacts -

表: clients

+----+-------------+----------------------+
| id | name        | email                |
+----+-------------+----------------------+
| 1  | A           | email@example.com    |
+----+-------------+----------------------+
  

注意: id是主键

表: subscribers

+----+-------------+----------------------+
| id | client_id   | status               |
+----+-------------+----------------------+
| 1  | 1           | Y                    |
+----+-------------+----------------------+
| 2  | 3           | Y                    |
+----+-------------+----------------------+
  

注意: id是主键,client_idclients表的外键

表: contacts

+----+-------------+----------------------+
| id | client_id   | status               |
+----+-------------+----------------------+
| 1  | 1           | Y                    |
+----+-------------+----------------------+
| 2  | 3           | Y                    |
+----+-------------+----------------------+
  

注意: id是主键,client_idclients表的外键