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 Personhat eine Postanschrift und eine Rechnungsadresse. Als Denormalisierungstechnik erstellen wir eine separate AddressTabelle. Meistens haben das mail_address_keyund das billing_address_keyeines einzelnen Personden gleichen Wert (dh der Schlüssel für die Postanschrift und die Rechnungsadresse ist der gleiche).
In meiner Datenbank der Addresseine Identität (die Adresse Taste). Aber in meinem Domain - Modell , ich sehe keinen zwingenden Grund für die Addresseine 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?