Hello,
Die "Hauptstraße" in Buxtehude hat mit der Hauptstraße in Berlin-Spandau nichts zu tun, obwohl sie den gleichen Namen tragen. Ich käme auch nicht auf die Idee, eine Tabelle mit Straßennamen anzulegen und in einer Adresstabelle nur die entsprechende ID des Straßennamens abzuspeichern.
Stimmt. Hier darf nicht bedingungsfrei normalisiert werden. Es handelt sich bei der Tabelle, in der "Hauptstraße" gelistet wird, um Basisstammdaten. Für Basisstammdaten gilt der Grundsatz "angelegt bleibt angelegt", gelöscht oder geändert werden darf nicht mehr. Es darf nur die Referenz auf den Basisdatendatz geändert werden. Und das geht ja auch in diesem Beispiel.
Puristen vertreten sogar die Meinung, dass auch keine Fehler geändert (sic!) werden dürfen in einem solchen Basisdatensatz, sondern auch in diesem Falle ein neuer angelegt werden muss (mit Metadaten) und alle _betroffenen_ Verweise ebenfalls geändert werden müssen, und zwar per kontrollierter Änderung (also Sichtvornahme oder "superschlaue Funktion"). Denn anderenfalls könnte man den einen Fehler tatsächlich nur gegen den anderen geändert haben.
Die Normalisierungsprofis sagen mir hierzu: hier hört der Spaß in der Praxis auf, hier wird einfach nicht weiter normalisiert, weil "Hauptstraße" selber hier einfach als mehrwertiger Schlüssel der Eigenschaft angesehen wird. Man erspart sich eine ganze Menge Arbeit, wenn man direkt den Wert benutzt.
Für mich sind Schlagworte nur ein Attribut und keine Entität (blödes Wort).
Und "Hauptstraße" kennzeichnet keine Identität!
(und siehe oben) ...warum ich Vizenz hier zustimme.
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg
