Hello,
hmh, also mein spontaner Eindruck ist, dass sein Modell ziemlich daneben ist. Ob dein Modell optimal ist, darüber kann man streiten, je nachdem ob man von der Straße auf den Ort schließen kann wäre da nochmal eine Aufspaltung drin, aber im Prinzip...
Du hast zwei Tabellen, die jeweils einen Sacheverhalt abbilden (obige Anmerkung mal außen vor):
Benutzer
Adresse
und die dazugehörige Kreuztabelle.
Wenn dir allerdings ernsthaft jemand den anderen Vorschlag gemacht hat wäre zu fragen, ob du uns Teile vom Modell unterschlägst -- vielleicht hat der Vorschlag ja einen Hintergrund.
Generell sei dir der Wikipedia-Artikel zum Thema Normalisierung angeraten.
Performancemäßig bist du mit deinem Modell tendenziell besser bedient, du musst zur Wiederherstellung des gesamten Sachverhalts zwei Joins ausführen, im anderen Modell 3.
MfG
Rouven
-------------------
sh:| fo:} ch:? rl:( br:& n4:{ ie:| mo:} va:) js:| de:] zu:| fl:( ss:) ls:& (SelfCode)
Computer programming is tremendous fun. Like music, it is a skill that derives from an unknown blend of innate talent and constant practice. Like drawing, it can be shaped to a variety of ends: commercial, artistic, and pure entertainment. Programmers have a well-deserved reputation for working long hours but are rarely credited with being driven by creative fevers. Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination, but because their imagination reveals worlds that others cannot see. -- Larry OBrien and Bruce Eckel in Thinking in C#