Michael Schröpl: Problem beim logischen Aufbau einer Datenbank

Beitrag lesen

Hi,

aber wenn ich nur ein Feld nehme, um die Titel zu speichern, dann kann ich die ja nich richtig auslesen dann stehen da alle Titel hintereinander, in der Form
Titel1Titel2Titel3
(gleiches gilt dann ja auch für die Antworten wenn ich die alle auch in einem Feld speichere)
wie soll ich die denn dann korrekt auslesen und den jeweiligen Texten bzw Meldungen zuweisen??

die Struktur Deiner Daten hängt ganz wesentlich davon ab, was Du damit später tun willst.

Ich glaube Deinen Angaben entnehmen zu können, daß Du einen Baum mit variabler Verzweigungsbreite traversieren können willst.
In einer relationalen Datenbank würde ich einen solchen Baum in einer einzigen Tabelle folgendermaßen darstellen:

knotennummer    number;
  erster_sohn     number;
  naechste_bruder number;
  ...
  (weitere Komponenten, um den eigentlichen Inhalt des Knotens darzustellen)

Gibt es einen Sohn bzw. Bruder nicht, dann schreibe eine entsprechende Markierung hinein.

Eine erste Antwort zu einem Knoten hängst Du also an den first_son, falls der noch frei ist, ansonsten positionierst Du auf ihn und suchst solange die Brüder ab, bis einer davon der letzte ist, und hängst die Antwort dort dran.
Analog kannst Du die gesamte Baumstruktur später wieder lesen.

Anschauungsbeispiel (als Forum-Baum und als Tabellenwerte):

Posting 1
   Posting 3
      Posting 6
Posting 2
   Posting 4
   Posting 5

ergibt:

(1,3,2)
(2,4,0)
(3,6,0)
(4,0,5)
(5,0,0)
(6,0,0)

Wenn Du in einem solchen Baum auch noch löschen können willst, sollte ein Knoten auch einen Rückverweis auf seinen Vater bzw. vorherigen Bruder erhalten.

mfG - Michael