sql >> Database teknologi >  >> RDS >> Mysql

Bedømmelsessystem i PHP og MySQL

Jeg synes, det er bedre at lave en anden tabel til at "stemme". Forholdet mellem brugere og stemmer er n til n, derfor bør der oprettes en ny tabel. Det burde være noget som dette:

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

Permanent felt kan bruges til at få stemmer til at forblive efter en given tid, som SO gør.
Andre felter kan tilføjes i henhold til ønskede funktioner. Da hver række vil tage mindst 16B, kan du have op til 250M rækker i tabel før bordet bruger 4GB (fat32-grænse, hvis der er ét arkiv pr. tabel, hvilket er tilfældet for MyISAM og InnoDB).
Også, som Matthew Scharley påpeger i en kommentar, skal du ikke indlæse alle stemmer på én gang ind i hukommelsen (som at hente alle tabellen i et resultatsæt). Du kan altid bruge LIMIT-klausulen til at indsnævre dine forespørgselsresultater.



  1. Android Room:Sådan migreres kolonneomdøbning?

  2. MySQL vælger top X-poster for hver enkelt person i tabellen

  3. Hent beskeder fra postkassen ved hjælp af PL/SQL Mail_Client API

  4. Tjek, om en tabel har en fremmednøgle i SQL Server med OBJECTPROPERTY()