Bu yazı, bu cevap bir soru takip şöyledir: Best method for storing a list of user IDs.
Ben Cletus'u ve normalleştirilmiş bir veritabanı yaklaşımı kullanarak Mehrdad afshari destansı tavsiye aldı. Aşağıdaki tablolarda doğru düzgün optimizasyonu için kurulur? Ben tür yeni MySQL verimliliği değilim, bu yüzden bu etkili olduğundan emin olmak istiyorum.
Bu bir oyun ve toplam oy sayısı için ortalama notunu bulmaya gelince de, ben sırasıyla aşağıdaki iki sorgu kullanmalıyım?
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`)
) ;