正确的MySQL将一个表行与另外两个表行相关联

时间:2015-09-05 02:42:47

标签: mysql foreign-keys

我对MySQL没有超级经验,并且正在为客户构建一个简单的CRM。最初基于他如何工作的想法我设置了如下所示的数据库结构,因此每个帐户可以连接多个联系人,我只需使用匹配的帐号来关联它们。十分简单。

Account Table
+-------------+-------------+
| account_id  | create_date |
+-------------+-------------+
|#10045       | 01/05/15    |
|#10046       | 01/07/15    |
+-------------+-------------+

Customer Contact Table
+-----------+-----------+-----------+ 
|contact_id |account_id |first_name |
+-----------+-----------+-----------+
|#124       |#10045     |John       |
|#125       |#10045     |Bill       |
|#126       |#10046     |Frank      |
+-----------+-----------+-----------+

但是在项目中我发现他希望联系人可以在其他帐户上重复使用,而不必创建重复项。因此,仅仅根据上述帐号进行关联将无效。

所以我想我会从联系表中删除“account_id”行,并使用下面的第三个表。

Account Contact Link Table
+--+------------+------------+
|id| account_id | contact_id |
+--+------------+------------+
|#1| #10045     | #124       |
|#2| #10045     | #125       |
|#3| #10046     | #126       |
+--+------------+------------+

这会有效,但我想知道这是否是最佳做法。

0 个答案:

没有答案