sql >> Databasteknik >  >> RDS >> Mysql

vänskapsdatabasschema

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 användare 1 skickar en vänskapsförfrågan till användare 2, gör

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

Om användare 2 nekar begäran,

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

om användare 2 accepterar det:

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

Sedan kan en vänskap hittas på detta sätt:

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

Du kan skapa en vy med den här sista frågan, det hjälper dig att söka efter användares vänner, eller till och med vänners vänner.



  1. ResultSet#getDate() semantik

  2. Få exekveringstid för PostgreSQL-fråga

  3. MySQL:Large VARCHAR vs. TEXT?

  4. Anteckningar om PostgreSQL B-Tree Index