Mysql
 sql >> база данни >  >> RDS >> Mysql

Рейтингова система в PHP и MySQL

Мисля, че да направя друга маса "гласуване" е по-добре. Връзката между потребителите и гласовете е от n до n, следователно трябва да се създаде нова таблица. Трябва да е нещо подобно:

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

Постоянното поле може да се използва, за да накара гласовете да останат след определено време, както прави SO.
Могат да се добавят други полета според желаните функции. Тъй като всеки ред ще отнеме поне 16B, можете да имате до 250M реда в таблицата преди таблицата използва 4 GB (ограничение за fat32, ако има един архив на таблица, какъвто е случаят с MyISAM и InnoDB).
Също така, както Матю Шарли посочва в коментар, не зареждайте всички гласове наведнъж в паметта (като извличане на цялата таблица в набор от резултати). Винаги можете да използвате клауза LIMIT, за да стесните резултатите от заявката си.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MYSQL сървърът е изчезнал

  2. Показване на всяка стойност на DISTINCT поле само веднъж с помощта на цикъл

  3. Създайте нов потребител в MySQL и му дайте пълен достъп до една база данни

  4. дясно присъединяване срещу ляво присъединяване

  5. Как да съхранявате JSON низ в MySQL db