Mysql
 sql >> Baza danych >  >> RDS >> Mysql

schemat bazy danych przyjaźni

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

Gdy użytkownik 1 wyśle ​​prośbę o dodanie do znajomych do użytkownika 2, wykonaj

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

Jeśli użytkownik 2 odrzuci żądanie,

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

jeśli użytkownik 2 to zaakceptuje:

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

Wtedy przyjaźń można znaleźć w ten sposób:

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

Możesz zrobić widok z tym ostatnim zapytaniem, pomoże to w zapytaniu znajomych użytkowników, a nawet znajomych znajomych.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Nieprawidłowy typ błędu składni =MyISAM w DDL wygenerowany przez Hibernate

  2. Dodawanie czasu w PHP

  3. jaki jest pożytek z opcji pool w database.yml?

  4. Wielowymiarowa tablica php z wyniku mysql

  5. Jak uzyskać identyfikator ostatniego zaktualizowanego wiersza w MySQL?