Das birgt aber eine gewisse Gefahr, dass bei Änderungen an der Datenbank, abhängige Systeme nicht mehr funktionieren oder noch schlimmer, dass die Datenbank unbrauchbar wird.
Sei mir nicht böse, aber ganz so dämlich sind professionelle Systeme nun wirklich nicht.
Folgende Maßnahmen sind durchaus effektiv:
1. Virtuelle Tabellen bereitstellen. Einfach: Views, besser: updateable Views
2. Rechte des Anwenders genau definieren, d.h. Änderungen an Tabelle nicht zulassen (geht bei virtuellen Tabellen eh nicht)
3. Consumer-Bereich (aka Tablespace oder separate
DB) erstellen und dort alle Rechte zuweisen.
Somit kann die
DB nicht unbrauchbar werden.
Es gibt auch Systeme, die per Admin-Tool erweitert werden können. Dadurch wird die Integrität gewährleistet und nix kann kaputtgehen. Hier können Erweiterungen an Tabellen vorgenommen werden, alle Views und CRUD-Routinen werden automatisch angepasst. Systemrelevante Spalten/Tabellen können natürlich nicht verändert werden.
Ich kenne ein (BuHa-)System (nein, nicht meins), das in Delphi geschrieben ist und sehr flexibel ist. Hier können einfach zusätzliche Tabellen erstellt werden, die die individuellen Daten enthalten. Per Konfiguration werden die Dialoge angepasst, zur Not auch mit Customizing, aber das ist laut Hersteller etwas blöd, eben wegen der Upgradeproblematik.
Es geht aber auch ohne.