Ich habe eine kurze Frage - gibt es eine Best Practice in SQL-Tabellenentwurf für die Speicherung von "entweder/oder" Daten?SQL-Tabellen - Muster für entweder/oder Daten
Ich habe das folgende Problem - ich muss Vorlage Daten (Definieren von Ordnerstruktur) in einer SQL-Tabelle speichern. Jeder angegebene Ordner kann einen statischen Namen haben (zum Beispiel "E-Mails") oder er kann dynamisch für jede Instanz erzeugt werden, abhängig von den Objekten, die ihm zugeordnet sind (zB Firmenname).
Wenn ein Geschäftsobjekt instanziiert wird, werden die Vorlagendaten verwendet, um die tatsächliche Ordnerstruktur zu erstellen.
Ich denke, die Daten wie folgt zu speichern:
CREATE TABLE folder ( ID INT IDENTITY PRIMARY KEY, FolderName NVARCHAR(50), IsDynamic BIT NOT NULL DEFAULT 0, DynamicFieldID INT FOREIGN KEY REFERENCES dynamicField, ParentID INT FOREIGN KEY REFERENCES folder )
Also, wenn das IsDynamic Feld auf true gesetzt ist ich weiß, dass es eine Regel sein wird (definiert auf dem Fremdschlüssel), aber wenn nicht ich verwendet den im Ordnernamen gespeicherten Wert.
Aber das scheint ein bisschen chaotisch für mich - gibt es ein "Best-Practice" -Muster für diese Art von Szenario?
Hallo Patrick - Dank. Ich dachte darüber nach, aber war aufgelegt, um zu entscheiden, ob das besser oder schlechter war als mein Fall. Was ist Ihre Meinung darüber, warum dies besser ist (oder was halten Sie für die Vor- und Nachteile)? – Chris
Wenn Sie mehr als zwei Arten von Ordnern hatten oder mehr als zwei Spalten betroffen waren, könnte dieser Ansatz sauberer sein als der Versuch, alles in einer Tabelle zu behalten. Jedoch, wie es aussieht, denke ich Chris COALESE Vorschlag ist praktischer.Ich würde seine Antwort akzeptieren. :-) –