Dieser Beitrag ist eine Follow-up dieser beantworteten Frage: Best method for storing a list of user IDs.Effiziente MySQL-Tabellenstruktur für Bewertungssystem
Ich nahm Cletus und Mehrdad Afshari epischen Rat der Verwendung einer normalisierten Datenbank-Ansatz. Sind die folgenden Tabellen ordnungsgemäß für die richtige Optimierung eingerichtet? Ich bin etwas neu in MySQL Effizienz, also möchte ich sicherstellen, dass dies effektiv ist.
Auch, wenn es darum geht, die durchschnittliche Bewertung für ein Spiel und die Gesamtzahl der Stimmen zu finden sollte ich jeweils die folgenden zwei Abfragen verwenden?
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`)
) ;
Derzeit verwende ich nicht MyISAM und nicht InnoDB. Würden Sie InnoDB empfehlen? –