Einzelnen Beitrag anzeigen

marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#3

Re: Hierarchie in DB abbilden

  Alt 29. Mai 2006, 08:46
Hallo Michl,

dieses Standardproblem kennen Informatiker als unäre Relation, Stückliste oder bill-of-materials (BOM). Die Lösung unter Verwendung eines RDBMS ist eine selbst-rekursive Tabelle. Dabei werden deine Daten in einer Gen-Spec-Beziehung modelliert. Das gemeinsame von Controller, Hub, Port und Device kommt in die Tabelle GEN, dazu der Schlüssel ID und der Fremdschlüssel GEN_ID, welcher auf den übergeordneten Eintrag verweist. Zusätzlich findet man oft noch ein Ordnungskriterium, welches die Ordnung der Unterknoten für die Anzeige definiert.

Eine minimale Master-Tabelle sieht dann etwa so aus:
SQL-Code:
CREATE TABLE GEN (
  ID INT AUTO_INCREMENT,
  GEN_ID INT,
  SEQ INT NOT NULL,
  NAME VARCHAR(50) NOT NULL,
  KIND INT NOT NULL
)
Der für die Spec-Tabellen nötige Diskriminator ist das Feld KIND - Controller(1), Hub(2), Port(3), Device(4) wären möglich. Besonderes Augenmerk gebührt dem Feld SEQ. Dazu gibt es bei Bedarf eine Lösung über eine Stored Procedure.

Grüße vom marabu
  Mit Zitat antworten Zitat