Design und 1 zu 1 Beziehungen
-
Ist es professionell ein Datenbank Design ähnlich einer Vererbungshierarchie in der Programmierung anzulegen?
Als Beispiel: Es gibt versch. Mitarbeiter. Manche sind Angestellte andere Vertreter. Diese haben komplett andere Abrechnungsarten und unterscheiden sich auch sonst in einigen Details. Eine große Menge an Daten bleibt aber gleich, wie Name, Anschrift usw.
Macht es Sinn eine Tabelle Mitarbeiter anzulegen die als PK die Mitarbeiter Nummer hat und die Anschrift und ähnliches speichert? Danach lege ich jeweils zwei weitere Tabellen, Vertreter und Angestellter, an die die spezifieschen Daten speichern. Diese würde ich mit 1 zu 1 Beziehungen mit den Mitarbeiter Nummern verknüpfen.
Was meint ihr? Macht man das so professionell?
Grüße
-
Das nennt man Normalisierung einer Datenbank.
-
Hallo,
ja, haben das auch bis zur 3. NF durchgenommen. Leider fehlten konkrete Beispiele. Würdest Du das auch so machen? Ist das so in Ordnung?
Grüße
-
Ich kenne nicht das ganze Design derDB. MIr fehl asuch die Zeit um mir Gedanken über dein DB-Design zu machen.
Eine Hilfe. Lege die Tabellen so an das noch keine Normalisierung da ist. Dann gehe von NORM.1 - NORM.X . Ob es Sinn macht bis zur 5 NORM. zu gehen? Denke bis max. zur 3ten reicht.
Ich gehe oft nur bis zur 2ten.
-
Ich würde sagen, das das ne Frage der Anwedbarkeit ist (in deinem Fall).
Musst du häufig mit dem Oberbegriff "Mitarbeiter" arbeiten? Oder brauchst du häufiger die spezielle Unterscheidung?Bei ersterem müsstetst du ohne Vererbung immer in mehreren Tabellen suchen (lange komplizierte Querys). Hier wäre eine Vererbung sinnvoll.
Im anderen Fall müsstest du bei der Vererbung immer min. 2 Tabellen joinen um die gewünschten Daten zu bekommen (lange komplizierte Querys). Hier wäre das mit ohne Vererbung sinnvoller.
Also eher eine Geschmacksfrage....
-
Nimm doch eine Objectorientierte DB, ist tausend mal einfacher für einen OO-Programmierer und auch um einiges schneller.
Cache von http://www.intersystem.com hab ich gute Erfahrung gemacht. Andere Produkte die ich aber nicht ausprobiert habe:
http://www.objectstore.com
http://www.objectivity.com/Products/Products.shtml
http://www.versant.com/products/fastobjects/t7