Mi chiedevo dove fare / mettere il calcolo dei campi da calcolare da altri dati. Sì, sto parlando di campo computazionale. Anche i dati calcolati devono essere salvati nel database. Così.. Meteo dovrebbe essere fatto al database o da qualche codice esterno come un servizio di Windows. ?
Consentitemi di inserire la mia esigenza / scenario:
- Sto sviluppando un'applicazione web per diffondere i dati ricevuti da più strumenti / sensori distribuiti da qualche parte nel campo.
- Un servizio Windows in C # viene sviluppato e implementato in Microsoft Windows SQL Sever 2008 R2 per ricevere, formattare e inserire dati in una tabella (diciamo tblSensorData) nel database SQL distribuito sullo stesso computer.
- Un trigger Insert e Update è implementato su 'tblSensorData' e viene usato per chiamare una stored procedure che calcola altri 3 valori numerici dalla lettura del sensore ricevuto e inserisce una riga in un'altra tabella (diciamo 'tblComputedFields').
- Pertanto, ogni nuovo dato non elaborato ricevuto ha una riga di campo calcolata generata nel database e quindi ho coerenza in questo modo.
Ho fatto qualche ricerca sulla buona o cattiva pratica di trattare con i campi computazionali e le persone sostengono di fare alle applicazioni e alcuni al database. Ma non è stato possibile trovare una risposta precisa a seconda del mio scenario attuale.
Una cosa è certa, se facciamo lo stesso compito di computazione a parte il database in qualsiasi codice esterno dovrebbe essere Insert Event / Trigger basato per sapere quando fare i calcoli e per la coerenza dei dati nel database.
Qualsiasi suggerimento sarebbe apprezzato riguardo a dove eseguire lo stesso compito al di fuori del database. ?