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

System ocen w PHP i MySQL

Myślę, że zrobienie innego stołu „głosowanie” jest lepsze. Relacja między użytkownikami a głosami wynosi od n do n, dlatego należy utworzyć nową tabelę. Powinno to wyglądać mniej więcej tak:

question id (int) | user id (int) | permanent (bool) | timestamp (datetime)

Stałe pole może zostać użyte do pozostawienia głosów po określonym czasie, tak jak to się dzieje.
Inne pola mogą być dodawane zgodnie z pożądanymi funkcjami.Ponieważ każdy wiersz zajmie co najmniej 16B, możesz mieć do 250M wierszy w tabela przed tabelą używa 4 GB (limit fat32, jeśli jest jedno archiwum na tabelę, co ma miejsce w przypadku MyISAM i InnoDB).
Ponadto, jak wskazuje Matthew Scharley w komentarzu, nie ładuj wszystkich głosów naraz do pamięci (jako pobranie całej tabeli w zestawie wyników). Zawsze możesz użyć klauzuli LIMIT, aby zawęzić wyniki zapytania.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. percentyl według COUNT(DISTINCT) ze skorelowanym WHERE działa tylko z widokiem (lub bez DISTINCT)

  2. Jaka jest najlepsza wydajność pobierania wyników MySQL EAV jako tabeli relacyjnej?

  3. Dlaczego nie należy wyłączać ONLY_FULL_GROUP_BY?

  4. Czy Load DATA bez pliku (tj. w pamięci) jest możliwe dla MySQL i Java?

  5. Jak dołączyć do tabeli kategorii dla rodziców w zapytaniu SQL?