*Markus: Effizientes Datenbankdesign

Beitrag lesen

Hallo,

das meinte ich nicht, deine lookup tabelle bleibt weiterhin bestehen, allerdings wird darauf nicht mehr referenziert. die lookup tabelle macht nur das, wofür sie da ist, nämlich als vorlage zu dienen.

Bei deiner Lösung müsste ich weiters darauf vertrauen, dass die Benutzer immer "richtig" schreiben, d.h. ein "grün" wäre nicht dasselbe wie "gruen".

nein, siehe oben, die lookup tabelle kann bestehen bleiben, damit stellst du die richtige schreibweise sicher. aber du persistierst nicht den fremdschlüssel, sondern eben den wert fest in die tabelle.

Interessanter Ansatz. Ich begreife aber leider noch immer nicht so ganz, warum das in diesem Fall eine gute Lösung ist.

Weiters soll eine Mehrsprachigkeit realisiert werden. Dadurch sehe ich absolut keine andere Möglichkeit mehr, es so zu erstellen, wie es bereits geplant ist.

hier muss ich mal auf einen lieblingssatz zurückgreifen, den ich meinen arbeitskollegen und entwicklern immer sage. "was gleich aussieht, muss nicht gleich sein". in deinem falle bedeutet das, die lookup tabelle ist eine eigenständige sache, die gewählten werte der person eine andere. willst du die mehrsprachrigkeit mit einbauen, musst du die werte auslagern und über einen fremdschlüssel referenzieren, aber über eine/mehrere zusätzliche tabelle auslagern und nicht über die lookup-tabelle. fragt sich nur genau wie, es gibt dabei einiges zu beachten.

ich denke mal, du hattest vor, in der lookup-tabelle einfach soviel spalten hinzuzufügen, wie du sprachen hast. also für blau eine spalte für deutsch, eine für englisch, etc. das wäre aber fatal. [...]

Eigentlich dachte ich daran, die Textbezeichnungen in einer separaten Tabelle aufzubewahren und jeden Wert eindeutig zu identifizieren indem ich diese irgendwie mit den Lookup-Tabellen verknüpfe, aber im Prinzip bin ich gerade dabei, mir das zu überlegen.

du musst also dafür sorgen, dass du zusätzliche sprachen hinzufügen kannst, ohne das design ändern zu müssen. eine andere frage ist noch, ob neue eigenschaften im laufe des lebenszyklus hinzukommen sollen, auch hier gibt es dann das problem der design-änderung. etwas kniffelig alles, aber das überlasse ich mal alles deiner fantasie. wie gesagt, gutes daten-design ist eine hohe kunst und sehr individuell.

Neue Eigenschaften werden kaum dazukommen. Dafür eher mehr Sprachen.
Mehrsprachigkeit sinnvoll zu modellieren ist offensichtlich wirklich nicht so einfach wie es scheint, v.a. wenn man all die anderen Integritäten beachten soll.

Markus

--