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

Sistema di valutazione in PHP e MySQL

Penso che fare un "voto" su un altro tavolo sia meglio. La relazione tra utenti e voti va da n a n, quindi dovrebbe essere creata una nuova tabella. Dovrebbe essere qualcosa del genere:

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

Il campo permanente può essere utilizzato per far rimanere i voti dopo un determinato tempo, come fa SO.
Altri campi possono essere aggiunti in base alle caratteristiche desiderate. Poiché ogni riga richiederà almeno 16 miliardi, puoi avere fino a 250 milioni di righe nel table prima che la tabella utilizzi 4 GB (limite fat32 se è presente un archivio per tabella, come nel caso di MyISAM e InnoDB).
Inoltre, come sottolinea Matthew Scharley in un commento, non caricare tutti i voti contemporaneamente in memoria (come recuperare tutta la tabella in un set di risultati). Puoi sempre utilizzare la clausola LIMIT per restringere i risultati della query.