4 Stimmen

Datenbankstruktur für CMS

Ich baue ein CMS zur Bearbeitung von Seiteninhalten auf. Ich möchte es so flexibel wie möglich gestalten, da jede Seite eine variable Anzahl von Abschnitten enthalten wird.

Derzeit habe ich Folgendes:

Table page:
===========
id
name

Table page_section:
===================
id
page_id
name
display_order

Table page_section_sub:
=======================
id
page_section_id
name
content

Ich dachte, diese Struktur würde gut funktionieren, bis ich feststellte, dass es eine Menge sich wiederholender Daten gibt und dass es nicht der ideale Weg ist, um bestimmte Daten herauszuziehen.

Zum Beispiel, die name Feld in Tabelle page_section_sub dient der Speicherung der Feldbezeichnung für das Formular. Hier ist ein Beispiel für Daten:

Table page_section:
===================

id  page_id     name
-----------------------------------------
1   1           Slideshow Slide 1
2   1           Slideshow Slide 2
3   1           Slideshow Slide 3
4   1           Middle Box
5   1           Bottom Box

Table page_section_sub:
=======================

id  page_section_id name                content
------------------------------------------------------
1   1               Heading             ...
2   1               First Paragraph     ...
3   1               Second Paragraph    ...
4   2               Heading             ...
5   2               First Paragraph     ...
6   2               Second Paragraph    ...
7   3               Heading             ...
8   3               First Paragraph     ...
9   3               Second Paragraph    ...
10  4               Image URL           ...
11  5               Image URL           ...

Nun möchte ich im Frontend die 3 Diashows und die dazugehörigen content aus der obigen Tabelle. Dies erweist sich als sehr mühsam.

Ich weiß, dass ich eine weitere Tabelle mit separaten Spalten für "Überschrift", "Erster Absatz" und "Zweiter Absatz" erstellen kann, aber wie ich schon sagte, muss dieses System flexibel sein und eine beliebige Anzahl von Spalten berücksichtigen können.

Wie kann ich die Struktur dieser Datenbank so verbessern, dass ich diese Daten problemlos am Frontend ausgeben und auch am Backend ändern kann?

EDIT: Dies ist, was ich in meinem Frontend tun möchte:

<?php while($row = mysql_fetch_array($slideshow)) { ?>
<div class="slideshow">
    <h1><?php echo $row['heading']; ?></h1>
    <p class="first"><?php echo $row['first']; ?></p>
    <p class="second"><?php echo $row['second']; ?></p>
</div>
<?php } ?>

Aber natürlich existieren diese eigentlichen $row-Spalten nicht in der Tabelle Im Backend muss ich jedoch in der Lage sein, die oben genannten 11 Zeilen auf einer Seite zu bearbeiten.

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