Realisieren eines CMS-Systems

Eroli

Erfahrenes Mitglied
Hallo zusammen,

ich möchte gerne ein CMS realisieren. Dabei sollen die User in einem passwordgeschützten Bereich selber Inhaltsseiten anlegen können. Diese sollen dann auch in ein Menü integriert werden können. Zuerst wollte ich das so realisieren, wie in Screenshot1 gezeigt.

Danach dachte ich mir, dass das ganze auch einfacher geht, indem ich mich für die Struktur in Screenshot2 entscheide.

Wie seht ihr das? Was ist besser?

Vielen Dank für jeden Gedanken :)

EDIT: Möglichkeit A (Alles in einer Tabelle)
Wenn man Root-Nodes anlegen möchte, müsste man die Spalte FK_Parent entweder = Guid.Empty setzen (Jetzt muss man dafür sorgen, dass es einen PK_Content==Guid.Empty gibt!) oder auf Null setzen. Welche Möglichkeit findet ihr besser?
 

Anhänge

  • Screenshot1.jpg
    Screenshot1.jpg
    55,6 KB · Aufrufe: 13
  • Screenshot2.jpg
    Screenshot2.jpg
    51,4 KB · Aufrufe: 17
Zuletzt bearbeitet:
Hallo Eroli,

wenn ich deinen Beitrag wirklich richtig verstanden habe, finde ich ersteres besser. Wenn du hier den Parent auf NULL setzt (oder empty), ist der Node ja fast schon automatisch ein RootElement.
Beim zweiten verstehe ich leider auch den Sinn nicht ganz.
 
Niemand sagt, dass ein FK automatisch NOT NULL sein muss. Wenn eine Fremdschlüsselbeziehung leer bleiben kann, dann würde ich die auch NULL setzen.

Das impliziert imo aber, dass Du Root-Elemente anhand einer Eigenschaft (isRoot=true o.ä.) festmachst und nicht durch eine Implikation (PARENT IS NULL).

Es gibt immer eine Lösung, aber imo keine davon ist wirklich schön.

Prinzipiell würde ich - wenn kein Zwang wie beispielsweise Querverweise - versuchen, eine Hierarchie innerhalb der selben Entity zu realisieren.

Nur wenn es echten Sachwang gibt, würde ich eine Realisierung über eine Sekundärtabelle machen.

[EDIT: ich würde allerdings auch den Weg über die Implikation gehen und das Root-Element abhängig vom NULL-Kriterium des parent FKs machen]
 
Zurück