Finden anhand von Aspekten
Find Using Notions

13.11.04

Back-End: Datenzugriff: einzelne Tabellen

Zugriff auf Ebene 2 betrifft alle Tabellen (label, language, notion, notion_label, preferred_language, (access_right, author,) relationship und _entries_used_by_MOM). Für jede dieser Tabellen sollte folgende Grundfunktionalität bereitstehen:
  • Datensatz hinzufügen (add),
  • Datensatz ändern (change),
  • Datensatz löschen (erase),
  • Datensatz anhand der ID lesen (z.B. get_by_ID),
  • Datensatz anhand anderer Felder/Werte lesen (z.B. get_by_label für die label-Tabelle).
Ebene 2 soll bloße Interaktion mit den Tabellen der Datenbank sein – dass nichts Unbeabsichtigtes .. Schädliches stattfindet, soll in Ebene 3 implementiert werden: Wenn Ebene 2 etwa eine Klasse bereitstellt, die den Zugriff auf die label-Tabelle erlaubt, soll diese Klasse nicht dafür zuständig sein, zu prüfen, ob ein Label intern, gekennzeichnet via Eintrag in der Tabelle _entries_used_by_MOM, intern verwendet wird. Diese Funktionalität soll stattdessen in Ebene 3 implementiert werden.
(Intern verwendete Labels sollten nicht einfach so geändert oder gelöscht werden können, da dadurch Daten ungültig werden könnten: Z.B. werden Sprachen mithilfe von Einträgen in die Tabelle "notion" definiert. Dort jeden x-beliebigen Eintrag löschen zu können, würde die Möglichkeit implizieren, Sprach-Definitionen (unbeabsichtigt) ungültig zu machen.)<<



[lokal referenziert von: Back-End: Datenzugriff: einzelne Tabellen: generische Basisklasse]