pl: Klassen in Modeln oder Repositories aufbauen?

Beitrag lesen

Moin,

willst Du Dich mal selbst an einem ORM versuchen? Natürlich könntest Du eine relationale Tabelle aufsetzen mit der oid (Objekt id) als Primärschlüssel und für jede Eigenschaft ein Feld:

oid|name|vname|plz|ort

Jedes Objekt wäre ein eigener Record mit einer eindeutigen id (primary key). Dennoch sind da jede Menge Redundanzen möglich, aus OO Sicht also identische Objekte:

1|Haar|Franz|12345|Zopftn 2|Haar|Franz|12345|Zopftn

Bedenke auch, daß ein Hinzufügen weiterer Eigenschaften eine Änderung des DB Designs erfordert. Eine 3 spaltige Tabelle vermeidet diesen Umstand:

oid|eingeschaft|wert

wobei jede Eigenschaft einen eigenen Record benötigt:

1|name|Haar 1|vname|Franz 1|plz|12345 1|ort|Zopftn

aber das Hinzufügen weiterer Eigneschaften wenigstens kein DB ReDesign mehr erfordert. Ein bestimmtes Objekt sieht dann so aus:

Person = {
   name:  Haar,
   vname: Franz,
   plz:   12345,
   ort:   Zopftn
}

der besseren Lesbarkeit wegen mal nicht gequotet. Und siehe da, wo das herkommt, ist der Anwendung völlig Wurst. Genausowenig wie es eine Rolle spielen würde ob die Tabellen der Normalform entsprechen oder nicht. Natürlich kannst Du auch mehrere Objekte da rausholen:

Personen = {
 1: {
   name:  Haar,
   vname: Franz,
   plz:   12345,
   ort:   Zopftn
 },
 2: {
   name:  Haar,
   vname: Franz,
   plz:   12345,
   ort:   Zopftn
}

MfG