Mysql
 sql >> Base de données >  >> RDS >> Mysql

schéma de la base de données d'amitié

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)
);

Lorsque l'utilisateur 1 envoie une demande d'amitié à l'utilisateur 2, faites

insert into friendship (user, friend) values (1,2);

Si l'utilisateur 2 refuse la demande,

delete from friendship where user = 1 and friend = 2;

si l'utilisateur 2 l'accepte :

insert into friendship (user, friend) values (2,1);

Ensuite, une amitié peut être trouvée de cette façon :

select f1.* 
from friendship f1
inner join friendship f2 on f1.user = f2.friend and f1.friend = f2.user;

Vous pouvez créer une vue avec cette dernière requête, cela vous aidera à interroger les amis des utilisateurs, ou même les amis d'amis.