Closed. This question needs details or clarity。它当前不接受答案。
想改善这个问题吗?添加详细信息,并通过editing this post阐明问题。
3个月前关闭。
Improve this question
我正在创建一个数据库模式,其中涉及可以成为 friend 的用户,我想知道对这些用户建立友谊的能力的最佳方法是什么。应该是它自己的表仅具有两列,每个列代表一个用户吗?谢谢!
当用户1向用户2发送友谊请求时,
如果用户2拒绝该请求,
如果用户2接受:
然后,可以通过这种方式找到友谊:
您可以使用最后一个查询进行查看,它将帮助您查询用户的 friend ,甚至 friend 的 friend 。
想改善这个问题吗?添加详细信息,并通过editing this post阐明问题。
3个月前关闭。
Improve this question
我正在创建一个数据库模式,其中涉及可以成为 friend 的用户,我想知道对这些用户建立友谊的能力的最佳方法是什么。应该是它自己的表仅具有两列,每个列代表一个用户吗?谢谢!
最佳答案
create table
friendship(
user bigint,
friend bigint,
primary key(user, friend),
key(friend, user),
constraint `fk_user` foreign key (user) references user(id),
constraint `fk_friend` foreign key (friend) references user(id)
);
当用户1向用户2发送友谊请求时,
insert into friendship (user, friend) values (1,2);
如果用户2拒绝该请求,
delete from friendship where user = 1 and friend = 2;
如果用户2接受:
insert into friendship (user, friend) values (2,1);
然后,可以通过这种方式找到友谊:
select f1.*
from friendship f1
inner join friendship f2 on f1.user = f2.friend and f1.friend = f2.user;
您可以使用最后一个查询进行查看,它将帮助您查询用户的 friend ,甚至 friend 的 friend 。
10-05 19:26