Hey,
ich entwerfe momentan einen Algorithmus der mir aus einer Datenbank Überschriften und Texte holt und diese dann zu einem Text zusammenstellt. Gleichzeitig soll man aber auch neue Bausteine hinzufügen, löschen oder bearbeiten können.
Momentan ist das ganze so aufgebaut:
Datenbank:
Ich arbeite mit dem Framework CodeIgniter, welches ich letztens erst kennen gelernt habe und wirklich gut finde.
Bisher funktioniert auch alles super!
Mein Problem ist nun das ich gerne Unter-Überschriften möchte die hinterher bei der Generierung des Textes durch PHP durchnummeriert werden. Außerdem soll der Benutzer von dem generieren, auswählen können welche Textabschnitte überhaupt in den Text kommen. Also es kann auch sein das er nur Themen-Abschnitte wählt und überhaupt keine Unterthemen (siehe unten).
Desweiteren gibt es Textabschnitte die immer Standardmäßig in einem Text vorkommen d.h auch nicht vom Benutzer abwählbar oder zuwählbar sind.
Das ganze könnte als fertiger Text z.B. so aussehen:
Mehr als 3 Stufen wird es nicht geben, sprich 2.1.1.1 nicht aber 2.1.1 schon.
Ich habe leider nur überhaupt keine Idee, wie ich das sinnvoll in der Datenbank ablegen soll. Ich dachte erst an eine Baumstruktur, weiß aber nicht, wie man diese effektiv in einer Datenbank speichert.
Könnt ihr mir vielleicht helfen?
ich entwerfe momentan einen Algorithmus der mir aus einer Datenbank Überschriften und Texte holt und diese dann zu einem Text zusammenstellt. Gleichzeitig soll man aber auch neue Bausteine hinzufügen, löschen oder bearbeiten können.
Momentan ist das ganze so aufgebaut:
Datenbank:
Code:
CREATE TABLE modules ( id INT NOT NULL AUTO_INCREMENT, title TEXT CHARACTER SET utf8 COLLATE utf8_german2_ci, txt TEXT CHARACTER SET utf8 COLLATE utf8_german2_ci NOT NULL, PRIMARY KEY (id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; CREATE TABLE modules_text ( id INT NOT NULL AUTO_INCREMENT, text INT NOT NULL, modules INT NOT NULL, PRIMARY KEY (id), FOREIGN KEY (text) REFERENCES text(id), FOREIGN KEY (modules) REFERENCES modules(id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; CREATE TABLE text ( id INT NOT NULL AUTO_INCREMENT, txt TEXT CHARACTER SET utf8 COLLATE utf8_german2_ci, PRIMARY KEY (id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Ich arbeite mit dem Framework CodeIgniter, welches ich letztens erst kennen gelernt habe und wirklich gut finde.
Bisher funktioniert auch alles super!
Mein Problem ist nun das ich gerne Unter-Überschriften möchte die hinterher bei der Generierung des Textes durch PHP durchnummeriert werden. Außerdem soll der Benutzer von dem generieren, auswählen können welche Textabschnitte überhaupt in den Text kommen. Also es kann auch sein das er nur Themen-Abschnitte wählt und überhaupt keine Unterthemen (siehe unten).
Desweiteren gibt es Textabschnitte die immer Standardmäßig in einem Text vorkommen d.h auch nicht vom Benutzer abwählbar oder zuwählbar sind.
Das ganze könnte als fertiger Text z.B. so aussehen:
1 Thema
1.1 Unterthema
1.2 Unterthema
2 Thema
2.1 Unterthema
2.1.1 Unterunterthema
2.1.2 Unterunterthema
2.1.3 Unterunterthema
2.1.4 Unterunterthema
2.2 Unterthema
3 Thema
4 Thema
5 Thema
5.1 Unterthema
1.1 Unterthema
1.2 Unterthema
2 Thema
2.1 Unterthema
2.1.1 Unterunterthema
2.1.2 Unterunterthema
2.1.3 Unterunterthema
2.1.4 Unterunterthema
2.2 Unterthema
3 Thema
4 Thema
5 Thema
5.1 Unterthema
Ich habe leider nur überhaupt keine Idee, wie ich das sinnvoll in der Datenbank ablegen soll. Ich dachte erst an eine Baumstruktur, weiß aber nicht, wie man diese effektiv in einer Datenbank speichert.
Könnt ihr mir vielleicht helfen?
Kommentar