この投稿は、この回答済みの質問のフォローアップです:ユーザー ID のリストを保存するための最良の方法。
私は、cletus と Mehrdad Afshari の、正規化されたデータベース アプローチを使用するという壮大なアドバイスを受けました。次の表は、適切な最適化のために適切に設定されていますか? 私はMySQLの効率性に慣れていないので、これが効果的であることを確認したいと思います.
また、ゲームの平均評価と総投票数を求める場合、次の 2 つのクエリをそれぞれ使用する必要がありますか?
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`)
) ;