Enum-vs-Referenz-Tabelle vs-Lookup-Klasse

Während ich die Gestaltung einer MySQL-Datenbank für eine dating-website, ich bin mit dem Zweifel, wie Sie zum speichern der referenzierten Daten. Derzeit hat die Datenbank 33 Tabellen, und es gibt fast 32 verschiedene Felder, die referenziert werden. Wir müssen auch berücksichtigen, dass viele dieser Elemente, die übersetzt werden müssen.

Nach der Lektüre einige Meinungen, habe ich fast entlassen enum nutzen wie:

CREATE TABLE profile (
  'user_id' INT NOT NULL,
 ...
  'relationship_status' ENUM('Single','Married') NOT NULL,
 ... 
);

Und normalerweise wäre ich mit einem Referenz Tabelle wie:

CREATE TABLE profile (
  'user_id' INT NOT NULL,
 ...
  'relationship_status_id' INT NOT NULL, 
 ... 
);

CREATE TABLE relationship_status (
  'id' INT NOT NULL,
  'name' VARCHAR(45) NOT NULL,
  PRIMARY KEY ('id') 
);

Aber es könnte sein, getötet zu erstellen, 32 Tabellen, so dass ich überlege, es code in PHP wie diese:

class RelationshipStatusLookUp{
  const SINGLE = 1;
  const MARRIED = 2;

  public static function getLabel($status){
      if($status == self::SINGLE)
         return 'Single';
      if($status == self::MARRIED)
         return 'Married';
      return false;
  }
}

Was denkst du? Weil ich denke es könnte verbessern Sie die performance der Abfragen und auch leichter auf die Entwicklung der gesamten Website.

Dank.

  • das einzige, was id sagen, ist, wenn Sie entscheiden, zu verwenden, dass die Daten außerhalb des ur php-code, option drei wird nicht viel helfen. Id-stick mit der option zwei, und ich wirklich dont denken, die Leistung ist gonna take ein Treffer überhaupt, von Referenz-Tabellen
  • "Wir müssen auch berücksichtigen, dass viele dieser Elemente, die übersetzt werden müssen." Versuchen Sie nicht zu behandeln, die übersetzung auf die Datenbank-Ebene. Sollten Sie Griff diese in Ihrer PHP.
  • Auch wenn Sie planen, zu implementieren, die ein ORM überhaupt, einige von Ihnen, wie die Lehre, nicht einmal Unterstützung von enum
  • stackoverflow.com/questions/336846/database-enums-pros-and-cons einige gute Antworten aus einer vorherigen Instanz dieser Frage
InformationsquelleAutor Puigcerber | 2012-03-15
Schreibe einen Kommentar