-2

我有一个用户表,我需要在其中链接两行。即我希望一个用户有一个链接到另一个。

是否可以在 php 中使用 mysql 来做到这一点?

或者,如果没有,请建议我采取其他方式。

4

3 回答 3

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)
);
于 2012-12-15T11:28:21.903 回答
0

查找自我加入,一个快速的谷歌应该会给你你需要的答案。

于 2012-12-15T11:29:02.040 回答
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

于 2012-12-15T11:30:30.683 回答