Ich habe mir ein DB Modell skizziert und es schön normalisiert. (ist zwar schon 15 jahr her sein dem ich das mal gelernt habe...)
Nun frage ich mich aber ob es wirklich Sinn macht so. (performance mässig)
Ich habe Grosskunden, Filialen und Endkunden
Auf all diesen Stufen giebt es Strasse, StrassenNO, Zip und Place.
Sauber runter normalisiert würde da ja in den 3 Tabellen nur jeweils die FK zu 4 weiteren Tabellen stehen.
Also hätten wir eine street Table, eine StreetNO table einen Zip Table und eine Place Table.
Das heisst aber wenn ich von einem Endkunden zB. seine Anschrift möcht, dann brauche ich die EndkundenTable und join auf 4 weitere tables.
Performt das?
Wäre es nicht schneller ich habe all diese Info direkt in der Endkunden tabelle?
Ist mir schon klar, dass ich dann wenn ich 3 Kunden habe die an der Wiesenhalde wohnen, nur die Wiesenhalde id verlinke und im Falle eines Typos das nur 1 mal korrigiere etc.
Aber ich erkaufe mir das mit 4 Joins bei der abfrage und mit immer noch einem Select vor dem Insert, wenn ich einen neuen Endkunden anlege.
Dann muss ich ja jedesmal noch prüfen ob ich die Strasse schon kenne, wenn nein insert, wenn ja fetch ID, ebenso bei Zip, place und vor allem Streetno.
Nun frage ich mich aber ob es wirklich Sinn macht so. (performance mässig)
Ich habe Grosskunden, Filialen und Endkunden
Auf all diesen Stufen giebt es Strasse, StrassenNO, Zip und Place.
Sauber runter normalisiert würde da ja in den 3 Tabellen nur jeweils die FK zu 4 weiteren Tabellen stehen.
Also hätten wir eine street Table, eine StreetNO table einen Zip Table und eine Place Table.
Das heisst aber wenn ich von einem Endkunden zB. seine Anschrift möcht, dann brauche ich die EndkundenTable und join auf 4 weitere tables.
Performt das?
Wäre es nicht schneller ich habe all diese Info direkt in der Endkunden tabelle?
Ist mir schon klar, dass ich dann wenn ich 3 Kunden habe die an der Wiesenhalde wohnen, nur die Wiesenhalde id verlinke und im Falle eines Typos das nur 1 mal korrigiere etc.
Aber ich erkaufe mir das mit 4 Joins bei der abfrage und mit immer noch einem Select vor dem Insert, wenn ich einen neuen Endkunden anlege.
Dann muss ich ja jedesmal noch prüfen ob ich die Strasse schon kenne, wenn nein insert, wenn ja fetch ID, ebenso bei Zip, place und vor allem Streetno.