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

Jak stworzyć Facebook jak system znajomych w php z mysql

Lista znajomych użytkownika 123:

SELECT u.* FROM users u INNER JOIN friend_requests f ON f.user_id = u.id WHERE f.user_id = 123 AND status = 'accepted';

Użytkownik 123 jest fanem tych użytkowników:

SELECT u.* FROM users u INNER JOIN friend_requests f ON f.user_id = u.id WHERE f.friend_id = 123 AND status = 'waiting';

Nie zapomnij dodać indeksu w kolumnie stanu.

Ponadto nie jestem pewien, czy taki stół jest do tego idealny.

EDYCJA:

Prawdopodobnie wybrałbym taki schemat:

friend_request
    request_from (foreign key to users.user_id)
    request_to (foreign key to users.user_id)
    resolved (boolean 1 or 0, default is 0)

friend_xref
    friend (foreign key to users.user_id)
    is_friend_with (foreign key to users_user_id)

fan_xref
    user (foreign key to users.user_id)
    is_fan_of (foreign key to users.user_id)

Kiedy ktoś wysyła zaproszenie do znajomych, dodaj nowy wiersz do tabeli friend_request. Gdy odbiorca żądania postanowi:

  • aby zaakceptować żądanie:dodaj nowy wiersz do friend_xref i ustaw rozstrzygnięty na 1 w tabeli friend_request
  • aby odrzucić żądanie:dodaj nowy wiersz do fan_xref i ustaw rozwiązane na 1 w tabeli friend_request

Ale lepiej byłoby zapytać o to pod mysql, projektowaniem bazy danych lub podobnym tagiem, aby uzyskać najlepsze odpowiedzi.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Przyspieszenie zrzutów mysql i importów

  2. Najczęściej oglądane filmy w tym tygodniu

  3. Utwórz użytkownika MySQL w systemie Linux za pomocą wiersza poleceń

  4. Zapakuj niektóre dane wejściowe z polem wyboru i wyślij do bazy danych

  5. JSON_ARRAYAGG() – Utwórz tablicę JSON z wierszy zapytania w MySQL