Mysql
 sql >> Database >  >> RDS >> Mysql

schema del database dell'amicizia

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

Quando l'utente 1 invia una richiesta di amicizia all'utente 2, fai

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

Se l'utente 2 rifiuta la richiesta,

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

se l'utente 2 lo accetta:

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

Quindi, un'amicizia può essere trovata in questo modo:

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

Puoi fare una vista con quest'ultima query, ti aiuterà a interrogare gli amici degli utenti o anche gli amici di amici.