2 Stimmen

Informationen zu Knoten in einer Datenbankstruktur für Baumdatenstruktur

Stellen Sie sich vor, Sie haben eine Baumdatenstruktur in einer Datenbank wie dieser:

Level:    
 id   nextlevel    desc
  1         2       company
  2         3       department
  3         4       group

Nodes:
  id    level   parentnode
  0       1         null    -> the company
  1       2           0     -> dep 1
  2       2           0     -> dep 2
  3       3           2     -> group 1.1
  4       3           2     -> group 1.2

Ich möchte Informationen über jede Ebene speichern. Das heißt, Informationen über das Unternehmen, die Abteilungen und die Gruppen. ¿Wie würden Sie das machen?

Ich denke, ich könnte der Tabelle Level eine Spalte hinzufügen, in der die Tabelle gespeichert wird. Die Tabelle würde wie folgt aussehen:

Level:    
 id   nextlevel    desc           table
  1         2       company       company
  2         3       department    deparments
  3         4       group         groups

Und dann erstellen Sie diese Tabellen:

Company:
  id level     desc            etc...
  1    1    Acme Company

Ich habe über eine bessere und elegantere Lösung nachgedacht, aber ich habe keine gefunden. Kann mir jemand helfen? Ist dies eine gute Lösung?

Herzliche Grüße.

1voto

Gilbert Le Blanc Punkte 47973

Die relationale Methode wäre, getrennte Firmen-, Abteilungs- und Gruppentabellen zu haben. Wenn Sie in den Tabellen "Unternehmen", "Abteilung" und "Gruppe" unterschiedliche Elemente speichern wollen, sollten es getrennte Tabellen sein.

Die Unternehmenstabelle würde nur ein Feld für die Unternehmens-ID als Primärschlüssel haben. Sie hätten eine Zeile oder im Falle eines Konglomerats mehrere Zeilen.

Die Abteilungstabelle hätte ein Abteilungs-ID-Feld als Primärschlüssel. Die Unternehmens-ID wäre ein Fremdschlüssel.

Die Gruppentabelle würde eine Gruppen-ID als Primärschlüssel haben. Die Abteilungs-ID wäre ein Fremdschlüssel. Die Unternehmens-ID könnte ein Fremdschlüssel sein, wenn es mehrere Unternehmens-ID-Zeilen gibt.

Um alle oder einige der Entitäten Unternehmen, Abteilung, Gruppe zu erhalten, würden Sie eine Verknüpfung mit den Primärschlüsseln und den zugehörigen Fremdschlüsseln durchführen.

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