Entità DDD e database legacy

4

Diciamo che abbiamo un database legacy. Scopriamo che le tabelle Orders e OrderLines contengono ogni 100 colonne. Alcuni di essi non possono essere nulli, sono non e non faranno parte della nostra logica aziendale, ma devono essere inizializzati. Inoltre ci sarà un altro set di colonne che non useremo neanche.

Ora vogliamo iniziare a costruire un modello di dominio in cima a quello. Ci rendiamo conto che molte di queste colonne o attributi non appartengono al nostro linguaggio onnipresente. Quale sarebbe il corretto modellare i requisiti e allo stesso tempo soddisfare i database precedenti?

    
posta santiageitorx 15.11.2016 - 12:32
fonte

1 risposta

2

Avrai bisogno di due serie di requisiti: quelli per il nuovo sistema e quelli per il sistema legacy. I requisiti per il nuovo sistema saranno modellati sulla parte superiore del linguaggio onnipresente, che non include i campi legacy. Per soddisfare i requisiti legacy è necessario implementare un layer legacy, a metà tra la logica aziendale e la persistenza, che intercetta il salvataggio delle entità di dominio correnti e li decora con i campi legacy (solo quelli che devono essere inizializzati). Il livello continuerà quindi con il salvataggio delle entità decorate, che ora sono in corrispondenza con il database precedente.

Potresti implementare il livello precedente nel database, tramite i trigger, ma non sarà facile da mantenere e / o eseguire il debug.

    
risposta data 15.11.2016 - 13:36
fonte

Leggi altre domande sui tag