这篇文章是这个已回答问题的后续:Best method for storage a list of user IDs。
我接受了 cletus 和 Mehrdad Afshari 关于使用标准化数据库方法的史诗建议。下表是否正确设置以进行适当优化?我对 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`)
) ;