Quale sarebbe il modo corretto di progettare un DAO su cui l'implementazione si rivolge per la prima volta a un database MS SQL con un modello STAR, ma i requisiti aziendali specificano che l'applicazione deve essere sufficientemente flessibile da poter essere migrata se necessario, in un database NoSQL in futuro. Quale tipo di NoSQL, nessuna idea ...
La mia confusione è che non riesco a capire come potrei costruire DAO indipendenti per le tabelle STAR Dimensions e Facts che potrebbero poi essere scambiate per un modello completamente diverso che potrebbe non essere nemmeno orientato alla tabella (riak / mongo / qualunque) .
Quindi ,
Dovrei creare DAO che invece di astrarre la tabella , astrae le operazioni CRUD - ad esempio crea IDaoInsert
che può quindi essere implementato come SQLInsertDaoImpl
e MongoInsertDaoImpl
, ciascuno con una logica del modello completamente diversa ecc.
o
Dovrei semplicemente creare il tipico design DAO la cui interfaccia sarebbe qualcosa come IDaoCustomerDimension
e l'implementazione SqlDaoCustomerDimesionImpl
e MongoDaoCustomerDimentionImpl
rispettivamente?
Hibernate / Etc non rientra nello scopo di questa domanda per il momento.