Ecco un odore concreto di architettura / design che incontro continuamente: analisi e reporting direttamente da un database transazionale.
Ciò è certamente OK in alcune situazioni (ad es. report luminosi), ma in molti casi i requisiti di elaborazione delle transazioni e dei report sono in conflitto. Tuttavia, poiché è la cosa semplice / economica da fare, i report vengono eseguiti direttamente al di fuori del DB transazionale. Ciò causa tutti i tipi di mal di testa su entrambi i lati dell'equazione.
Questo è tipicamente visibile nelle app LOB aziendali, btw. Capisco che molti SMB non abbiano le risorse o il know-how per creare magazzini e datamarts (dimentichi i cubi o le impostazioni di riduzione delle mappe), ma molte delle organizzazioni più grandi con cui ho lavorato hanno gli stessi problemi.
Durante la progettazione di un sistema, l'architetto deve essere consapevole del fatto che il reporting, in particolare i report di analisi, e i requisiti transazionali vengono trattati come problemi separati e non solo raggruppati a livello di database.