Moin...
Zitat:
Immer wieder lese ich (nicht nur) hier, man möge das Datenbankhandling auf CRUD reduzieren und ansonsten alle Zugriffe programmgesteuert vornehmen:
- Daten in Listen/Objekte einlesen
- Daten in/mit diesen Objekten bearbeiten
- geänderte/neue Daten aus den Objekten wieder in der
DB speichern
- direkte
DB-Zugriffe (z.B. über datensensitive Steuerelemente) sind verboten
d.h. die ganze Datenbank in unteren Schichten verstecken und nur mit Objekten arbeiten.
Ich bevorzuge auch diese Variante.
Zitat:
ansonsten alle Zugriffe programmgesteuert vornehmen:
Das gilt nur für die Anfrage an die Datenbank und dem Lesen des Ergebnisses. Wie die Datenbank zu dem Ergebnis kommt über SP o.ä. ist ihr Bier.
Zitat:
Die Datenbank ist nur Mittel zum Zweck, um Objekte zu persistieren. Damit wäre die verwendete Datenbank auch relativ egal, weil man eh mit dem kleinstmöglichen
SQL-Subset arbeitet. Puristen verzichten sogar auf JOINs und machen auch das in der Anwendung.
Das wäre dann das Prinzip der dummen Datenbank mit dem schlauen Programm.
Persönlich mag ich keine
Programmlogik in der
DB.
"
Zitat: Das ist bei Updates auch ein nicht zu unterschätzender Aufwand" Die Datenbank speichert Datensätze die "normalisiert" sind. Die einzige Aufgabe ist für die Datenbank seine eigene Konsistenz zu schützen.
Frage: Wo ist der Unterschied von Progammlogik und Datenbanklogik bei Euch? Ist eine SP schon Programmlogik?
Zitat:
Und klar das Schichtmodell in der Anwendung. Die darf gar nicht wissen welche Datenbank genutzt wird... ]
...so sieht es aus. Die Anwendung darf nicht wissen wo ihre Daten herkommen.