Ho letto molto su Domain-Driven Development e sono giunto alla domanda su come preservare la mancanza di identità distinte con oggetti value (VO). Mentre nel mondo DDD, questo è un requisito (ma non sono sicuro di averne compreso appieno la potenza), pone problemi per i livelli ORM inferiori in termini di persistenza.
Le tabelle, per la maggior parte, sembrano essere normalizzate. Rende la vita facile in termini di assenza di anomalie di cancellazione o inserimento. La mia preoccupazione arriva quando si implementano le VO; hanno le chiavi primarie - identità per definizione (e chiavi esterne per i loro genitori). Rendendoli entità sta violando DDD in favore della persistenza. Invece, potrei fare una classe wrapper che accetta un "sacco" di parametri, e quindi li allega alla chiave esterna di ciascun genitore. Anche se meccanicamente disordinato, sembra che funzionerà.
Ho letto molte risposte su Internet (Stack Overflow anche) sulla denormalizzazione delle tabelle. Questo mi preoccupa, perché ora stiamo violando la persistenza per DDD.
Come consentire ai VO di esistere con la loro definizione corretta senza denormalizzazione?