3 Stimmen

Effiziente MySQL-Tabellenstruktur für das Bewertungssystem

Dieser Beitrag ist eine Folgemaßnahme zu dieser beantworteten Frage: Beste Methode zum Speichern einer Liste von Benutzer-IDs .

Ich habe den epischen Rat von cletus und Mehrdad Afshari befolgt, einen normalisierten Datenbankansatz zu verwenden. Sind die folgenden Tabellen ordnungsgemäß für die richtige Optimierung eingerichtet? Ich bin ziemlich neu in Sachen MySQL-Effizienz, daher möchte ich sicherstellen, dass dies effektiv ist.

Wenn es darum geht, die durchschnittliche Bewertung für ein Spiel und die Gesamtzahl der Stimmen zu ermitteln, sollte ich dann die folgenden beiden 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`)
) ;

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X