Hallo Leute,
Ich bin heute bei einer von uns zu pflegenden Datebank auf zwei Konzepte gestoßen, die ich höchst merkwürdig finde:
1. Semantisch äquivalente Daten in unterschiedlichen Tabellen
Sagen wir, wir haben eine Tabelle 'Aufträge'. Nun entdecke ich eine weitere Tabelle 'AufträgeVonOstblockKunden' und eine 'AufträgeAnFremdfirmen'. Und -
oh- 'AufträgeVonOstblockKundenVomLetzenJahr' usw.
Aber: Ein Auftrag wandert äußerst selten von einer Tabelle zur nächsten. Nur beim Jahreswechsel werden die Aufträge an Ostblockkunden in die Tabelle vomletzenJahr verschoben.
2. Spalte als "Foreign Key" zeigt auf unterschiedliche Tabellen.
Ich habe drei Tabellen: A1, A2 und B. B enhält eine Spalte 'FID' und eine Spalte 'FTBL'.
In FID steht eine ID drin. Wenn in FTBL der Wert 'A1' steht, dann ist die ID der PK von A1. Steht in FTBL 'A2', ist die ID der PK von A2.
(A1 und A2 sind also die unterschiedlichen Auftrags-Tabellen).
Ich glaube, der Designer hat (2) so umgesetzt, weil er sich mit (1) schon ins Knie geschossen hat.
Nun ist die Firma, die das gebaut hat, ziemlich groß und schon lange als recht guter Softwaredienstleister weltweit vertreten. Ich habe also Probleme, denen zu sagen, das ihr Design Schrott ist (ich mach das aber, wenn ich mir sicher bin).
Das System ist über die Jahre gewachsen (typisch). Aber die Verteilung von eigentlich kompatiblen Daten auf unterschiedliche Tabellen ist mutwillig und wird heute noch so praktiziert.
Ich frage mich also, was die Motivation für so ein Design sein könnte.
Weiterhin frage ich mich, gegen welche Norm bzw. Grundsätze (Stichwort: Normalform) dieses Design verstößt.
Für sachdienliche Hinweise wäre ich dankbar.