Aiun Geschrieben 23. August 2007 Geschrieben 23. August 2007 hu, einmal mehr grübele ich über die Architektur innerhalb meiner PHP-Anwendungen. Derzeit setze ich ein Data-Abstraction Layer (DAL) ein, um Datenbasis und Verarbeitungslogik zu trennen. An sich ein schönes O/R-Mapping. Datenbeispiel: Ich verwalte Bestellungen und zu jeder Bestellung einen Kontakt (Name, adresse etz.) Situation: Nun ist der schöne fall eingetreten, das ich die gleichen Daten an verschiedenen stellen speichere. denn, es ist ein Archiv. Ändern dieser Daten darf dort nicht erfolgen. Wg. Rechnungsstellung unsw. Live-Daten werden unter bestimmten Bedingungen in das Archiv verschoben. Somit verhindere ich eine Änderung der Kontaktdaten für bereits abgearbeitete Bestellungen. Da darf sich ja nix mehr ändern. Problem: Jede Entity-Klasse weis, welche Tabelle ihre Daten enthält und in welcher Art (spaltennamen) sie abgelegt sind. Was wieder dazu führt, das ich für das Archiv eigene Entity-Klassen anlegen muss, die Ablagestruktur unterscheidet sich geringfügig. Letztlich ist die Struktur für Bestellung und Kontakt aber die gleiche. Archiv-Bestellung und Live-Bestellung haben beide eine Getter-Methode um an den Kontakt zu kommen. Idee: ein wenig von SOA (Service Oriented Architecture) inspiriert, eine Trennung zwischen EntityBean und DataBean. So das meine verarbeitungslogik wirklich nur Daten hat (Bestellung inklusive Getter Methode) aber die Frage wie die Daten aussehen, wo sie abgelegt sind unsw. getrennt abgelegt ist. Ich frage dann eine Service-Klasse "gib mir alle bestellungen", diese liefert mir Databeans aus dem Live-bestand. Oder ich Frage "gib mir archivierte bestellungen" die mir Objekte der Gleichen Bestellungs-Klasse liefert, allerdings aus dem archiv. Frage: Jemand Erfahrung damit, Ideen ? ich hake jetzt noch an der Konkreteren Umsetzung. Die Getter-Methode der Bestellung muss ja, abhängig davon ob sie archiviert ist oder nicht, auch den Kontakt anders anfragen. ... oder der Service der die Kontakte verwaltet, liefert den Kontakt anders, je nachdem wer fragt. Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.