Pattern di progettazione dell'accesso ai dati

3

Ho diversi casi in cui una singola entità ha più tabelle nel database sottostante.

Durante la lettura o la scrittura voglio gestire tutte le query DB con una singola classe per quell'oggetto, ad esempio, la classe SalesOrder ha una corrispondente classe SalesOrderQuery e quella classe usa le tabelle sottostanti di Sales_Order_Header e Sales_Line .

Esiste un nome di modello di progettazione per questo approccio (la classe che fa la persistenza, non la creazione delle classi delle entità che vengono mantenute)?

    
posta PatrickSJ 06.12.2017 - 20:40
fonte

1 risposta

3

Ciò che descrivi con una singola entità e più tabelle è in realtà un aggregato :

  • La tabella Sales_Order_Header contiene corrisponde alla radice aggregata, l'entità ordine
  • La tabella Sales_Line corrisponde all'entità linea appartenente all'aggregato e a cui si accede tramite la radice

Il modello di progettazione che stai cercando sembra essere il repository per gestire gli oggetti in memoria, che funziona insieme ai mappatori di dati

Se stai cercando un riferimento, ti consiglio l'eccellente libro di Martin Fowler Patterns of Enterprise Application Architecture , che presenta tutti questi dettagli in dettaglio e altri, come unità di lavoro per scrivere gli oggetti correlati nel database come parte di una transazione db.

    
risposta data 06.12.2017 - 21:55
fonte

Leggi altre domande sui tag