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

venskabsdatabaseskema

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

Når bruger 1 sender en venskabsanmodning til bruger 2, skal du gøre

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

Hvis bruger 2 afviser anmodningen,

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

hvis bruger 2 accepterer det:

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

Så kan et venskab findes på denne måde:

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

Du kan lave en visning med denne sidste forespørgsel, det vil hjælpe dig med at søge efter brugeres venner eller endda venners venner.



  1. SQLAlchemy func.count på boolesk kolonne

  2. PostgreSQL breddegrad længdegrad forespørgsel

  3. Sådan droppes tabeller og kolonner med SQL

  4. Hvordan indstilles character_set_database og collation_database til utf8 i my.ini?