PHP OOP oder SQL Tabellen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • PHP OOP oder SQL Tabellen

    Hallo,

    arbeite an einem einfachen Administrationssystem in PHP (4).
    Hatte mir folgendes überlegt:

    Es gibt verschiedene sog. Items. Das sind u.a.: Bilder, SWFs, PDFs, Einzeiler, Mehrzeiler und HTML-Texte.
    Jedes Item hat verschiedene Eigenschaften. Ein Bild z.B. den Namen, den Link zu der Datei, Breite, Höhe, etc. Ein Mehrzeiler hat einen Namen, den Text selbst, die Zeilenlänge und Anzahl der Zeilen.

    Ein Objekt ist eine beliebige Zusammenfassung von Items. Das heißt z.B., ich hab eine Produktseite, jedes Produkt hat Bild, Titel und Beschreibung. Also erstelle ich ein Objekt mit den Items Bild, Einzeiler und HTML-Text.

    Ein Objekt (also eine Zusammenstellung) wird als Tabelle realisiert. Jedoch kann man den Inhalt dieser Tabelle verschieden gestalten.
    Nun stellt sich die Frage der Herangehensweise:

    Man könnte alle Items als einzelne Klassen realisieren und diese Objekte serialisiert abspeichern. In dem oben genannten Beispiel würde die Tabelle dann evtl. wie folgt aussehen:
    id, bild, titel, text
    Der Nachteil wäre dann daß sich diese (meines Wissens nach?) nicht allein per SQL sortieren lassen, man auch keine Volltextsuche anwenden.

    Die andere Herangehensweise wäre das komplett tabellenorientiert zu realisieren. Dabei wäre jede Eigenschaft ein eigenes Feld. Laut obigen Beispiel wäre das so ca.:
    id, bild_href, bild_titel, bild_width, bild_height, titel_text, text_text
    Dadurch entstehen schnell viele Felder. Ich frage mich wie das dann von der Performance wäre, allerdings würde mir die tabellenorientierte Lösung besser gefallen.

    Kann mir irgendjemand einen Tipp geben?

    Hoffe der Post ist nicht zu chaotisch, ich programmiere nicht allzuviel PHP.

  • #2
    Für jeden Itemtyp eine eigene Tabelle. Jedes Item verfügt über eine UUID. Zu jeder Produktseite hast du noch eine Referenztabelle, in der definiert wird, welche Items in der Seite vorhanden sind. Sowas wie produkt_id, item_uuid, position.
    Fertig!

    Kommentar


    • #3
      Danke.
      Die Idee hatte ich auch schon, allerdings hatte ich nicht an UUIDs gedacht. Eine Idee wie ich das ohne UUIDs machen könnte?
      Da wäre ja das Problem der Unterscheidung welches Item es ist.

      Kommentar


      • #4
        Du könntest auch statt der UUID eine einfache auto_increment-Spalte verwenden und in der Referenztabelle noch ein Feld item_type einführen. Ist vielleicht sogar die bessere Lösung.

        Kommentar


        • #5
          Sorry, das war Quatsch, was ich schreiben wollte.
          Danke für die Hilfe. Bin glaub ich auf ne vernünftige Lösung gekommen.
          Zuletzt geändert von Bridges; 23.09.2007, 14:29.

          Kommentar

          Lädt...
          X