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

Najlepsza metoda przechowywania listy identyfikatorów użytkowników

Jest nieefektywny. To, co masz tutaj w kategoriach relacyjnych, to relacja wiele-do-wielu między użytkownikami a grami. Użytkownik może głosować na wiele gier. Na grę może głosować wielu użytkowników. Rozwiązaniem na to jest posiadanie wspólnej tabeli:

USERS (uid, name, ...)
GAMES (gid, name, ...)
VOTES (id, uid, gid, ...)

Gdzie uid i gid są kluczami obcymi z powrotem do odpowiednich tabel.

Jeśli ktoś zagłosuje, wstaw rekord w GŁOSACH.

Aby uzyskać listę głosów na grę:

$get = mysql_query("SELECT * FROM votes WHERE gid = $game_id");
...

Aby uzyskać listę głosów użytkownika:

$get = mysql_query("SELECT * FROM votes WHERE uid = $user_id");
...

i tak dalej.

Nie łącz tablicy i nie przechowuj jej w jednej kolumnie. Masz rację, że tego unikasz.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak zwrócić lewą lub prawą część ciągu w MySQL

  2. Połącz się ze źródłem danych MySQL w PHPStorm

  3. mysql pełnotekstowy DOPASUJ, PRZECIW zwraca 0 wyników

  4. Funkcja CONV() w płatku śniegu

  5. Błąd MySQL:specyfikacja klucza bez długości klucza