sql >> Base de Datos >  >> RDS >> Mysql

Sistema de calificación en PHP y MySQL

Creo que hacer otra mesa "votar" es mejor. La relación entre usuarios y votos es n a n, por lo que se debe crear una nueva tabla. Debería ser algo como esto:

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

El campo permanente se puede usar para hacer que los votos permanezcan después de un tiempo determinado, como lo hace SO.
Se pueden agregar otros campos de acuerdo con las características deseadas. Como cada fila ocupará al menos 16B, puede tener hasta 250 millones de filas en el la tabla anterior a la tabla usa 4 GB (límite de fat32 si hay un archivo por tabla, como es el caso de MyISAM e InnoDB).
Además, como señala Matthew Scharley en un comentario, no cargue todos los votos a la vez en la memoria (como obtener toda la tabla en un conjunto de resultados). Siempre puede usar la cláusula LIMIT para restringir los resultados de su consulta.