sql >> Databasteknik >  >> RDS >> Mysql

Betygssystem i PHP och MySQL

Jag tror att det är bättre att göra en annan tabell "rösta". Relationen mellan användare och röster är n till n, därför bör en ny tabell skapas. Det borde vara ungefär så här:

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

Permanent fält kan användas för att få röster kvar efter en viss tid, vilket SO gör.
Andra fält kan läggas till enligt önskade funktioner. Eftersom varje rad tar minst 16B kan du ha upp till 250 miljoner rader i tabell före bordet använder 4GB (fat32-gräns om det finns ett arkiv per tabell, vilket är fallet för MyISAM och InnoDB).
Också, som Matthew Scharley påpekar i en kommentar, ladda inte alla röster på en gång i minnet (som att hämta alla tabeller i en resultatuppsättning). Du kan alltid använda LIMIT-satsen för att begränsa dina sökresultat.



  1. mySQL-fråga som returnerar resurs-id #5

  2. Hur man tar bort filer i SQL Server 2019

  3. Vad är den lagrade förfarandet och varför den lagrade förfarandet?

  4. MySQL/Hibernate - Hur felsöker jag en MySQL-poolad anslutning som fortsätter att tappa?