Ho problemi a modellare una relazione in DDD. Ho quattro entità:
- Reclamo: definisce l'accesso a un servizio.
- Servizio: un servizio Web. Un servizio ha molte rivendicazioni e può appartenere a qualsiasi numero di squadre.
- Ruolo: contiene una raccolta di reclami da qualsiasi numero di servizi. I ruoli appartengono sempre a un team.
- Squadra - contiene una raccolta di ruoli e servizi.
Quando rimuovo un reclamo da un servizio, deve essere rimosso anche da tutti i ruoli a cui è stato assegnato tale reclamo. Allo stesso modo, quando cambio il nome di un servizio, quel nome dovrebbe riflettersi in tutti i team.
Attualmente dispongo di una radice aggregata del servizio (per consentire l'aggiunta e la modifica dei servizi indipendentemente da un singolo team) e una radice aggregata del team (per consentire la gestione dei ruoli specifici del team). Questo crea due problemi:
- Le modifiche nell'aggregazione del servizio non si riflettono nell'aggregazione del team
- Quando un reclamo viene rimosso da un servizio, non c'è modo di sovrapporlo nei ruoli del team.
C'è qualcosa di chiaramente orribilmente sbagliato nella mia modella, e mi chiedevo se qualcuno potesse illuminare dove sono andato storto.