Announcement

Collapse
No announcement yet.

Datenbankstrucktur

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Datenbankstrucktur

    Hallo miteinander,

    habe follgendes Problem: Möchte eine Datenbank struckturieren und zwar so wie das das Dateisystem struckturiert ist. d.h Die Verschachtelung der Untereinträge soll unendlich sein. Wie kann man das am Besten in einer DB abbilden. Mache mir bereits seit längeren gedanken, aber der Blitz will einfach nicht kommen. hat schon jemand sowas gemacht? Ich denke es müsste mit zwei Tabellen machbar sein in einer Verzeichnisbezeichnung und in der anderen die Verschachtelungstiefe und Position. Aber wie, das ist hier die Frage.
    Bin für Denkanstösse dankbar. Soll einfach mal eine Übung für fortgeschrttene sein.

    Gruß

  • #2
    Hallo Meissner,

    Ansich brauchst du dafür nur eine Tabelle mit 4 Spalten:
    ITEM_ID (als PK), ITEM_TYPE (Z.B. 'D' für Directory und 'F' für File), PARENT (für den übergeordneten Eintrag) und ITEM_NAME (für den Namen halt)

    Dein "Wurzelverzeichnis" sieht dann so aus: 1, 'D', NULL, 'root'
    Eine Datei im Root z.B. so: 2, 'F', 1, 'Erste Datei'
    Über ein wenig DB-Logik (z.B. Trigger) kannst du dann noch sicherstellen, daß der Eintrag bei PARENT einen ITEM_TYPE von 'D' haben muß. (Mal abgesehen vom entsprechenden FOREIGN KEY)

    Das Ganze kannst du jetzt beliebig tief schachteln und je nach verwendeter DB gibt es Möglichkeiten solche Hierarchien abzufragen.

    Gruß Falk
    Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

    Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

    Comment


    • #3
      Hallo Falk,

      vielen dank für Dein Vorschlag. Manchmal ist es wirklich einfacher als man denkt. Sieht eigentlich recht einfach aus, ich weis nicht warum ich so dermassen um die Ecke gedacht habe. So nach dem Motto warum einfach wenns auch komplziert geht. Manchmal ist es vielleicht besser die Sachen erstmals bischen liegen zu lassen um klaren Kopf zu bekommen.
      Aufjeden Fall danke schön für die Anregung und den Lösungsansatz sowei die schnelle Antwort.

      Gruß
      Meissner

      Comment

      Working...
      X