(DATETIME) столбец тоже. Таким образом, вы можете, скажем, увидеть тенденцию игры за определенный промежуток времени, или просто в случае, если когда-нибудь произойдет спам, вы можете точно удалить ненужные голоса.
пост является продолжением этого вопроса:Лучший способ для хранения списка идентификаторов пользователей.
Я воспользовался эпическим советом Керта и Мехрдада Афшари относительно использования нормализованного подхода к базе данных. Правильно ли настроены следующие таблицы для правильной оптимизации? Я немного новичок в эффективности MySQL, поэтому хочу убедиться, что это эффективно.
Кроме того, когда нужно найти среднюю оценку игры и общее количество голосов, я должен использовать следующие два запроса соответственно?
SELECT avg(vote) FROM votes WHERE uid = $uid AND gid = $gid;
SELECT count(uid) FROM votes WHERE uid = $uid AND gid = $gid;
CREATE TABLE IF NOT EXISTS `games` (
`id` int(8) NOT NULL auto_increment,
`title` varchar(50) NOT NULL,
PRIMARY KEY (`id`)
) AUTO_INCREMENT=1 ;
CREATE TABLE IF NOT EXISTS `users` (
`id` int(8) NOT NULL auto_increment,
`username` varchar(20) NOT NULL,
PRIMARY KEY (`id`)
) AUTO_INCREMENT=1 ;
CREATE TABLE IF NOT EXISTS `votes` (
`uid` int(8) NOT NULL,
`gid` int(8) NOT NULL,
`vote` int(1) NOT NULL,
KEY `uid` (`uid`,`gid`)
) ;