Bei der Nutzung des Fixed Data Models ist ein wenig mehr Vorbereitung erforderlich, da Sie sicherstellen müssen, dass alle für Ihr CMS erforderlichen Content-Entities vorhanden sind. Danach ist das Erstellen der logischen Datenbank jedoch kein Problem mehr. Abbildung A zeigt ein Beispiel eines Fixed Data Models für ein CMS.
Abbildung A: Fixed Data Model (Abbildung vergrößern) |
Die grundlegende Tabelle des Fixed Data Models ist die Content-Tabelle. Sie enthält sämtliche Content-Entities für Ihr CMS. Für unserer Artikel-Site lauten diese Entities (zum Erstellen einer Zeitung) Headline, Source, Byline, Teaser, Body und TagLine.
Da das System einen rollenbasierten Workflow unterstützen soll, verfolgt die Content-Tabelle alle Accounts, die den Content Flow verwalten. Zum Workflow des Content gehören die folgenden Vorgänge: Verfassen, Bearbeiten, Genehmigen und Veröffentlichen.
Es empfiehlt sich auch die Nutzung einer Versionskontrolle. Ich habe hierfür eine simple Lösung gewählt und einfach eine komplette Fassung jeder Version des in der Datenbank enthaltenen Inhalts archiviert. Sie können natürlich auch nur die Deltas speichern (d.h. nur die Änderungen zwischen den Versionen).
Dieses Datenbank-Design bietet eine hohe Flexibilität für die gespeicherten Daten zu den einzelnen Accounts. Es werden nur die erforderlichen Daten für einen Account in der Tabelle Account gespeichert. Dann werden jegliche zusätzlichen Informationen zum Account als der Account-ID zugeordnete Eigenschaften gespeichert. Auf diese Weise können Sie nahezu jede gewünschte Information über einen Benutzer zu der Datenbank hinzufügen. Wenn beispielsweise eine private Telefonnummer zu einem Account hinzugefügt werden soll, wird der zugeordneten Account-ID in der Tabelle AccountProperty die Eigenschaft Privatnummer mit dem Wert 800-555-1234 (oder wie immer die Telefonnummer lautet) hinzugefügt.
Mit diesem Design kann jeder Account mehrere Rollen übernehmen. Zum Beispiel kann ein Account für einen Verfasser und für einen Editor genutzt werden. Diese Rollen können verwendet werden, wenn zu dem simplen CMS ein Workflow hinzukommt. Es ist allerdings sinnvoller, den Workflow statt auf Accounts auf Rollen aufzubauen, da sich die Rollen eines Accounts im Lauf der Zeit ändern können.
Ein weiteres praktisches Feature dieses Datenbank-Designs ist die Notes-Option. Da es durchaus möglich ist, dass sich der Verfasser und der Editor auf verschiedenen Kontinenten befinden, könnte sich die Kommunikation als schwierig erweisen. (Unterschiedliche Zeitzonen können ein enormes Chaos verursachen, glauben Sie mir!). Mithilfe der Notes-Funktion ist eine problemlose Kommunikation zwischen den verschiedenen Rollen des Workflow möglich. Die Content-Notes werden der jeweiligen Content-ID zugewiesen und sind von der Version des Content unabhängig.
Dieses Design ermöglicht Ihnen die Anzeige desselben Contents in mehr als einem Bereich (Zone) Ihrer Website. Sie können dieses Feature auch deaktivieren, wenn Ihre Site nur wenige Content-Bereiche umfasst. Derselbe Content kann auch in verschiedenen Bereichen für eine unterschiedlich lange Zeitdauer angezeigt werden. Beispielsweise könnten Sie einen Bereich mit aktuellen Nachrichten haben, in dem alle Artikel nur einen Tag lang erscheinen. Statt den Artikel jedoch bereits nach einem Tag ins Archiv zu verschieben, könnten Sie ihn erst noch für eine gewisse Zeit in einem anderen Bereich bereitstellen.
Neueste Kommentare
Noch keine Kommentare zu Zwei Methoden zum Erstellen einer Datenbank für ein .NET-basiertes CMS
Kommentar hinzufügenVielen Dank für Ihren Kommentar.
Ihr Kommentar wurde gespeichert und wartet auf Moderation.