From e6b0ae9a28be3b692f9203b05dbe893e87be157e Mon Sep 17 00:00:00 2001 From: Sebastian Frank Date: Wed, 15 Nov 2023 09:19:51 +0100 Subject: [PATCH] Coding Guideline aktualisiert --- Coding-Guideline.md | 30 +++++++++++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) diff --git a/Coding-Guideline.md b/Coding-Guideline.md index 52e2cf9..ffb9cee 100644 --- a/Coding-Guideline.md +++ b/Coding-Guideline.md @@ -17,4 +17,32 @@ - Anzahl der Kollektionen gering halten, da - viele Verknüpfungen mehrere Anfragen im tibi-server benötigen (Performance) - Datensätze verteilt auf mehrere Kollektionen dem Benutzer mehr Klicks abverlangen (Usability) - - mongoDB im Gegensatz zu relationalen Datenbanken sehr gut mit eingebetten Daten innerhalb von Objekt-Strukturen zurecht kommt \ No newline at end of file + - mongoDB im Gegensatz zu relationalen Datenbanken sehr gut mit eingebetteten Daten innerhalb von Objekt-Strukturen zurecht kommt +- jedoch, Daten auf nötige Kollektionen aufteilen um Backend-Masken nicht zu überladen + +### Definition von Modulen + +- Festlegen was statische Template-Elemente sind und was Module sind, die in Seiteninhalten wiederverwendet werden können +- Einteilen der Module nach Typen, z.B. + - Mitarbeiterliste + - News-Teaser-Liste +- zu den jeweiligen Modulen Ausprägungen und die damit verbunden Einstellmöglichkeiten festhalten, z.B. + - Anzahl der Einträge in einer Liste + - Darstellungsart der Liste + - Filterung der Einträge + - Sortierung der Einträge + +### Beispiel + +- **Navigation** als eigene Kollektion +- **Inhalte** der Website alle zusammen in ein Kollektion, da + - über Pfad ansprechbar, welcher als Feld innerhalb der Kollektion gespeichert wird und somit beim Aufruf nur 1 eine Kollektion durchsucht werden muss + - viele Felder wiederverwendet werden über verschiedene Inhaltstypen (z.B. Meta-Titel, Keywords, Veröffentlichungsdatum) +- Inhalte-Kollektion kann unterschiedliche Arten von Inhalten trennen durch + - Typ-Feld + - Verwendung der Unternavigationsfunktion mit Vorfilterung des Types, dabei kann ebenso das Tabellenlayout je Inhaltstyp definiert werden +- **Mediathek**-Kollektion als Sammelbecken für alle Uploads + - Dateien können kann über Foreign-Key-Beziehung in anderen Kollektionen verknüpft und wiederverwendet werden +- **Module**-Kollektion zur Verwaltung der Einstellungen benötigter Frontend-Module, z.B. + - ein Modul kann z.B. eine Teaser-Liste des Inhaltstyps "News" sein, welcher in der Inhalte-Kollektion gespeichert ist + - Einstellungen zu einem Modul könnten z.B. Filterkriterien und die Sortierung für das Listing sein \ No newline at end of file