Steffen: Datenbanknormalisierung

Beitrag lesen

Hallo,

Gibts eigentlich schon schlaue Methoden, diesen applikationsspezifischen Code pfleg- und versionierbar abzulegen?

Naja, irgendwie gehören die Datenbank und die Applikation ja zusammen. Und die Datenbank muss für die Datengültigkeit sorgen. Und dafür muss sie zwangsweise auch etwas über die Applikation wissen.

Wegen der Versionsverwaltung; das war/ist für mich auch ein großes Problem gewesen. Im Moment mache ich das wie folgt (mehr oder weniger automatisiert).

Ich dumpe regelmäßig mein Datenbankschema ins SVN und entferne vor dem Checkin die Kommentare. So bekomme ich den relevanten Code ins SVN.

Beim Update dumpe ich das Schema des Zielsystem und mache ein Diff (Postgres: apgdiff). Daraus erhalte ich dann fertige SQL-Statements, die ich (fast immer) am Zielsystem ausführen kann.

Zur Sicherheit mache ich danach noch ein einfaches Diff.

Anmerkung: Um die Version des Datenbankschemas kontrollieren zu können habe ich im Datenbankkommentar noch ein $Id$ drinnen.

Mir gefällt der Gedanke nicht, dass die Applikation nur funktioniert, wenn die Datenbank ebenfalls ihren Teil des Codes korrekt implementiert bekommen hat. Außerdem sollte ein ungültiger bzw. invalider Datenschreibversuch nicht erst in der Datenbank scheitern.

Ein ungültiger Datenschreibversuch sollte spätestens in der Datenbank scheitern.

Grüße

  • Steffen