关联两个MySQL行

时间:2014-03-14 13:27:11

标签: php mysql

这有点令人困惑。我无法找到如何为谷歌说它,我只是无法绕过逻辑来做到这一点。 我有"联系人"和"网站"我将数据存储在数据库中的表。我们需要有一个页面显示联系人信息以及"网站"它们与AND相关联,并且有一个关于"网站"的信息页面。并显示与之关联的联系人。 现在我有一个"联系人"其中包含与其关联的每个网站的逗号分隔ID以及"网站"也有与该网站相关联的每个联系人的逗号分隔ID。

当我使用关联的联系人创建新网站时。逻辑应该如何更新"相关网站" MySQL中的联系人行上的字段,同时还更新自己的"关联的联系人"场?

2 个答案:

答案 0 :(得分:0)

我想,你说的是多对多的关系。

我假设您有一个像这样的表格设计:

tbl_contacts                tbl_sites
id | full_name              id | label
 1 | John Doe                1 | my website
 3 | Maria Doe               2 | super website

您需要一个表来“链接”表格。这是一个多对多表:

tbl_contacts2sites
id | contact_id | site_id
 1 |          1 |       2
 5 |          1 |       1
 3 |          3 |       2

因此,John Doe被分配到两个站点,但Maria只被分配到“超级站点”。 这是设计人际关系的常用方法。你应该避免使用这种关系的逗号分隔列表。

答案 1 :(得分:0)

最好的解决方案是在此表中创建第三个表(contacts2sites)时,您有三列名为:id,siteid,contactid。

在此表中,您可以添加网站和联系人之间的每个连接。要查询数据,可以使用带有连接的mysql查询。

小例子: solution with joins