我们公司正在开发 CRM,我们现在必须决定如何处理这些关系。这是很重要的一点,因为会有很多。以后再改变结构根本不酷..
我知道我们可以通过 3 种方法来做到这一点:
一张关系表:
我这样做的方法是创建一个包含所有关系的表。
Table: releationships
+----+-------------+-----------+--------------+------------+
| id | record_type | record_id | belongs_type | belongs_id |
+----+-------------+-----------+--------------+------------+
| 1 | person | 42 | company | 12 |
+----+-------------+-----------+--------------+------------+
| 2 | person | 43 | company | 12 |
+----+-------------+-----------+--------------+------------+
| 3 | note | 23 | company | 12 |
+----+-------------+-----------+--------------+------------+
| 4 | attachment | 13 | company | 12 |
+----+-------------+-----------+--------------+------------+
多个关系表:
我认为这就是例如 SugarCRM 的方式。
Table: company_realationships
+----+-----------+------------+--------+
| id | record_id | has_type | has_id |
+----+-----------+------------+--------+
| 1 | 12 | person | 42 |
+----+-----------+------------+--------+
| 2 | 12 | person | 43 |
+----+-----------+------------+--------+
| 3 | 12 | note | 23 |
+----+-----------+------------+--------+
| 2 | 12 | attachment | 13 |
+----+-----------+------------+--------+
全部在记录表中:
Table: person
+----+-----------+------------+
| id | name | company_id |
+----+-----------+------------+
| 42 | luke | 12 |
+----+-----------+------------+
| 43 | other guy | 12 |
+----+-----------+------------+
等等。
- 所以我的问题是处理大量关系的最佳方式是什么?
- 还有其他方法吗?
- 有什么缺点/优点?
- 高流量的双方如何处理他们的关系有什么特殊的方式吗?
谢谢你们的帮助:)