Al momento abbiamo lo schema SQL seguente:
Projects
Budgets
BudgetTabs
BudgetSections
BudgetTasks
BudgetTaskDetails
BudgetUnits
I dati contenuti in queste tabelle vengono utilizzati per specificare quanto costerà un progetto completare.
Il problema che prevedo è che ogni volta che abbiamo bisogno di ottenere il valore totale di un progetto, abbiamo una query con un minimo di 6 join (c'è forse di più se si includono alcune altre informazioni sul progetto). Poiché il nostro db è un multi-tenant, è probabile che queste tabelle contengano centinaia di migliaia di righe.
Ci siamo chiesti se questa informazione sarebbe stata meglio memorizzata in un documento db come MongoDB, il che ci consentirà anche di spostare alcuni calcoli da SQL e nel nostro codice.