我有一个用户表,我需要在其中链接两行。即我希望一个用户拥有另一个用户的链接。
可以在php中使用mysql吗?
如果没有,请建议我采取其他方式。
答案 0 :(得分:1)
您可以进行自我加入:
SELECT a.*, b.*
FROM my_table a JOIN my_table b ON a.foo = b.bar
要在两个记录之间永久存储“链接”,您可以创建一个关系表:
CREATE TABLE relationships (
id_a BIGINT UNSIGNED NOT NULL,
id_b BIGINT UNSIGNED NOT NULL,
PRIMARY KEY (id_a, id_b),
FOREIGN KEY (id_a) REFERENCES my_table (id),
FOREIGN KEY (id_b) REFERENCES my_table (id)
);
答案 1 :(得分:0)
查找自我加入,快速Google应该为您提供所需的答案。
答案 2 :(得分:0)
如果关系是多对多的(即,每个用户可能有许多其他用户的链接),最好的方法是使用第二个表列出关系。
user_links (
user_a_id int not null,
user_b_id int not null,
PRIMARY KEY(user_a_id, user_b_id)
)
您可能需要阅读Database Normalization。