Nehmen wir an, ich habe Bücher, die Romantik, Fiktion oder Geheimnis sein können. Ich habe 2 realistische Optionen, um diese Daten zu speichern. Eine besteht darin, eine Typspalte in meiner Büchertabelle zu haben, die eine Zeichenfolge mit dem Wert "Romantik", "Fiktion" oder "Geheimnis" ist. Die andere besteht darin, eine Tabelle book_types zu erstellen und die Typen dort zu speichern. Dann würden meine Bücher einen Fremdschlüssel type_id haben, der auf die Tabelle book_types verweist.Wenn ich mehrere Typen eines Objekts habe, wann sollte object.type eine Zeichenfolge sein und wann sollte es ein Fremdschlüssel sein?
Meine Frage ist, wie wähle ich, welches ist das Beste? Ich habe die String-Methode im Restful-Authentifizierungs-Rails-Plugin gesehen, die Informationen über den Benutzerstatus enthält - "inaktiv", "aktiv", "ausstehend" ...
Gibt es einen Leistungseinbruch für die Verwendung der Nachschlagetabelle-Methode Wenn ich bedenke, dass ich ständig nach diesen Informationen fragen werde?
Danke!
Nicht alle Datenbanken haben den Enum-Typ.Und ist es so einfach, neue Kategorien hinzuzufügen? – UncleO
@uncleo: Deshalb habe ich "mysql code" geschrieben. Über das Hinzufügen neuer Kategorien: Offensichtlich hängt die richtige Lösung davon ab, was er braucht. Wenn book_type nicht ändern wird, enum ist es in Ordnung. – Macarse
Ich meinte es als eine berechtigte Frage. Ich habe noch nie enum benutzt. Ich habe mich gefragt, was passieren würde, wenn die Spalte zu einem anderen Enum geändert würde. Würde es die alten Werte korrekt beibehalten, wenn am Ende ein neuer Wert hinzugefügt wurde? – UncleO