Attualmente stiamo lavorando a un progetto che si basa in gran parte su un database. Tra molte tabelle l'attenzione principale è sulla tabella "dati" che è collegata a un'altra tabella "data_type" come molti-a-uno, che viene quindi collegata alla tabella "data_operation" come uno-a-molti.
L'ultima tabella definisce un insieme specifico di operazioni che devono essere elaborate per ogni riga nella tabella "dati" in base a un tipo di dati specifico. L'operazione viene elaborata in base a campi specifici nella tabella "dati" e parzialmente dati da altre tabelle, non menzionati in questo esempio. L'operazione effettiva è principalmente un calcolo complesso o una formula specifica. Il risultato di un'operazione specifica verrà memorizzato in un'altra tabella.
Quindi in generale abbiamo:
- Laproiezioneperi"dati" della tabella è approssimativamente di un milione di righe all'anno, mentre le altre tabelle non dovrebbero cambiare drasticamente su base annuale, ma inizialmente conterrà qualche migliaio di righe, ovvero ogni tipo di dati definirà approssimativamente 10- 15 operazioni.
- Ogni operazione dovrebbe essere reversibile (annullare le modifiche).
- La velocità di elaborazione è un fattore molto importante.
- Molto probabilmente l'applicazione elaborerà 2500 nuove "tabelle" di dati al giorno.
La mia domanda riguarda l'approccio migliore per implementare le operazioni. Pensi che sia più saggio spostare la logica e le regole di business in un database (procedure, trigger per ogni operazione) o implementare ed elaborare ogni operazione nel livello applicazione / business? Quale sarebbe la struttura generica ideale?
Inoltre sono aperto anche ad altri approcci.