Supoose Ich habe folgendes:Speichern von Daten in einer Verknüpfungstabelle
tbl_options =========== id name 1 experience 2 languages 3 hourly_rate tbl_option_attributes ===================== id option_id name value 1 1 beginner 1 2 1 advanced 2 3 2 english 1 4 2 french 2 5 2 spanish 3 6 3 £10 p/h 10 7 3 £20 p/h 20 tbl_user_options ================ user_id option_id value 1 1 2 1 2 1 1 2 2 1 2 3 1 3 20
Im obigen Beispiel tbl_user_options speichert Optionsdaten für den Benutzer. Wir können mehrere Einträge für einige Optionen speichern.
Jetzt möchte ich das erweitern, d. H. Für "Sprachen" möchte ich, dass der Benutzer in der Lage ist, seine Kenntnisse in einer Sprache (Basic/Intermediate/Advanced) zu spezifizieren. Es wird auch andere Felder geben, die erweiterte Attribute haben werden.
Also meine Frage ist, können diese erweiterten Attribute in der gleichen Tabelle (tbl_user_options) gespeichert werden oder muss ich mehr Tabellen erstellen? Wenn ich ein Feld "language_proficiency" einfüge, wird es natürlich nicht auf die anderen Felder angewendet. Aber so habe ich nur eine Benutzeroptions-Tabelle zu verwalten. Was denken Sie?
EDIT: Das ist, was ich
tbl_user_options ================ user_id option_id value lang_prof 1 1 2 null 1 2 1 2 1 2 2 3 1 2 3 3 1 3 20 null
Ich sehe. Aber meine Sorge in dieser Situation wäre die Anzahl der zusätzlichen Tabellen zu verwalten. Da es mehr Felder gibt, die zusätzliche Attributdaten enthalten, können bis zu 8-10 Tabellen vorhanden sein, im Gegensatz zu nur zwei. – GSTAR
Können Sie Beispiele für andere Attribute angeben? Normalerweise beziehen sich diese Arten von Attributen auf einen bestimmten Benutzer oder eine bestimmte Sprache, die nur eine zusätzliche Spalte in der entsprechenden Tabelle sein sollte (unter der Annahme von Eins-zu-Eins-Daten). Wenn die Attributwerte hauptsächlich Aufzählungen sind (z. B. "Niedrig", "Mittel", "Hoch"), speichern Sie nur den Wert als Tinyint und ordnen Sie den Wert beschreibendem Text in Ihrer Präsentationsebene zu. Das Verwalten von 8-10 Tabellen in einem RDBMS ist nicht ungewöhnlich. Um Abfragen zu beschleunigen, verwenden Sie Ansichten, um die Daten zu verknüpfen. –
Ja, sie sind nur Aufzählungen, ähnlich den Sprachen. Schau dir meinen Schnitt an, da er eine bessere Vorstellung davon geben könnte, was ich meine. – GSTAR