Sto creando un nuovo database in SQL Server 2008 per alcuni report e ci sono molte regole aziendali comuni relative a questi dati che vanno in diversi tipi di report. Attualmente queste regole sono per lo più combinate in programmi procedurali più grandi, in un linguaggio legacy, che sto cercando di passare a SQL. Sto cercando flessibilità nell'implementazione dei rapporti da questi dati, come alcuni report in SAS, alcuni in C#, ecc.Sto usando SQL UDF per incapsulare semplici report/business logic. Dovrei evitare questo?
Il mio approccio al momento è quello di suddividere queste regole comuni (in genere MOLTO semplice logica) e incapsularle in singoli UDF SQL. Le prestazioni non sono un problema, voglio solo utilizzare queste regole per compilare campi statici in una sorta di "istantanea" di reporting, che può quindi essere utilizzata per segnalare da qualsiasi cosa desideri.
Mi piace questo approccio modulare per quanto riguarda la comprensione di ciascuna regola (e il mantenimento delle regole stesse), ma sto anche iniziando a temere che la manutenzione possa anche diventare un incubo. Alcune regole dipendono dagli altri, ma non posso davvero fuggire da questo: queste cose si costruiscono l'un l'altra ... che è quello che voglio ... penso? ;)
Esistono approcci migliori per questo approccio modulare in un database? Sono sulla buona strada, o sto pensando a questo in troppa mentalità di sviluppo di applicazioni?
Grazie a tutti! Sembra che questo approccio dovrebbe essere OK :) Ancora una volta, le prestazioni non sono un problema con queste perché vengono utilizzate solo una volta per istanza ETL/snapshot. Quindi potrebbe essere necessario un minuto o due o tre per compilare i campi a cui vengono inviate queste funzioni, ma in seguito qualcuno interrogherà sempre solo sulla tabella, mai utilizzando le funzioni in una query. Bene, almeno non dovrebbero usarli! – chucknelson