Nehmen wir an, es gibt ein Datenbankschema, das wie folgt definiert ist:
Person.mail_address_key ----- Address.address_key
Person.billing_address_key ----- Address.address_key
A Person
hat eine Postanschrift und eine Rechnungsadresse. Als Denormalisierungstechnik erstellen wir eine separate Address
Tabelle. Meistens haben das mail_address_key
und das billing_address_key
eines einzelnen Person
den gleichen Wert (dh der Schlüssel für die Postanschrift und die Rechnungsadresse ist der gleiche).
In meiner Datenbank der Address
eine Identität (die Adresse Taste). Aber in meinem Domain - Modell , ich sehe keinen zwingenden Grund für die Address
eine Entität sein, ich möchte es ein Wertobjekt sein.
- Ist dies in DDD eine Option? Oder sind Wertobjekte normalerweise eine Gruppe von Spalten (im Gegensatz zu einer Tabelle)? Ich spiele hier sozusagen den Anwalt des Teufels, weil ich nicht denke, dass die Datenbank die Struktur des Domänenmodells bestimmen sollte, sondern nur sicherstellen soll.
- Wenn ja, wo / wann / wie verliert die Adresse ihre Datenbankidentität, damit sie als Wertobjekt in der Domänenschicht verwendet werden kann? Oder soll ich die Datenbankkennung im Wertobjekt behalten?
- Was ist der Prozess, wenn das Modell in der Datenbank beibehalten werden muss? Soll ich einen Prozess durchlaufen: a) Eine Adresse anhand dieser Felder finden, b) Wenn sie nicht vorhanden ist, eine neue erstellen c) Wenn dies der Fall ist, die Felder aktualisieren?