Coding Guideline aktualisiert

Sebastian Frank 2023-11-15 09:19:51 +01:00
parent 26d430202e
commit e6b0ae9a28

@ -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
- 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