我想我误解了你的问题,你既关心朋友是谁,又需要定义他们之间的关系网络。在这种情况下,我会将朋友信息放入一个表中,包括他们的姓名等,并在另一个表中包含它们之间的链接。
CREATE TABLE FRIEND (
id int auto_increment primary key,
name varchar(20)
);
INSERT INTO FRIEND (name)
VALUES
('Andrew')
('John')
('Sally')
CREATE TABLE RELATIONSHIP (
relationshipId int auto_increment primary key,
friendId1 int,
friendId2 int,
isProfessional boolean
);
INSERT INTO RELATIONSHIP (friendId1, friendId2, isProfessional)
VALUES
(1, 2, TRUE),
(1, 3, FALSE);
友谊是互惠的,因此在搜索特定人的朋友时,您需要在朋友 1 和朋友 2 中查找他们的 id 并进行联合查询。
否则,以两种方式将所有关系都输入到表格中,这会使表格的大小加倍,但会避免联合,这在我的经验中是缓慢的。