Ilja: Effizientes Datenbankdesign

Beitrag lesen

yo,

eine gutes datendesign zu finden ist nicht einfach, zumal es "das richtige" und "das falsche" design eigentlich nicht gibt. man kann nur versuchen, für sich die vorteile den nachteilen überwiegen zu lassen. je nachdem wie gut einem das gelingt, kann man damit viel geld verdienen.....

  • Man arbeitet schließlich fast immer mit den Nummern (FKs), die ja bereits in der "Fakt"-Tabelle verwendet werde. Ab und zu müssen die Bezeichnungen zu diesen Nummern zwar ausgelesen werden, aber das passiert verhältnismäßig selten.

ist weder ein grund dafür noch dagegen es fest zu persistieren. ich meinte nicht der performance wegen, dass du dort einen zusätzlichen join machen musst. die gründe liegen woanders, nämlich abhängigkeiten modellieren und somit auch kontrolle schaffen, bzw, diese kontrolle an der richtigen stelle zu schaffen.

  • Würde ich es so machen, könnte irgendetwas in diesen Feldern stehen. Das System muss aber unbedingt anhand von bekannten Werten Datensätze vergleichen. In diesem Fall wäre das nicht mehr möglich, da willkürliche Werte in diesen Feldern stehen könnten.

das ist ein feature, kein bug. warum solltest du nicht mehr vergleichen können, die werte sind doch alle vorhanden, die du dafür brauchst. der benutzer wählt aus der Lookup tabelle eine augenfarbe aus, und der wert dieser farbe kann mit den fest persitierten daten verglichen werden, bzw. er bekommt ja selbst einen persitierten wert.

gehen wir einen schritt weiter, ich habe in der vergangenheit als augenfarbe silber ausgewählt. nun willst du, aus welchen gründen auch immer, silber nicht mehr zur auswahl stellen, sprich keinen eintrag in der lookup tabelle. löschen kannst du ihn nicht, da es ja noch einträge gibt, die darauf referenzieren. also müsstest du meine einmal vom benutzer festgelegt farbe ändern, was dann aber nicht mehr meiner augenfarbe entspricht, die ich mal ausgewählt habe.

die augenfarbe ist also von der person abhängig und nicht vond er lookup tabelle, genauso wie ich der vorname zu der person gehört. die tatsache, dass du den wertebereich aus einer tabelle vorgeben willst, das alleine ist noch nicht grund genug, die abhängigkeiten zu ändern.

Ilja