Domanda

Data di creazione di un esempio specifico che mi interessa - ma ci sono altri bit di dati che rientrano nella stessa categoria:i dati che si desidera catturare qualsiasi vagamente importante entità.

Dove le migliori per fare questo:la logica di business (BL) o Data Access layer (DAL)?

Fino ad ora ho invocata SQL Server getdate() per popolare la data di creazione, per inserire nella tabella, ma ora sto iniziando a chiedermi se devo fare più in BL.

CRONACA - questa è stata principalmente in sistemi web-based in cui si crea un oggetto in BL (in base all'input dell'utente) e sparare a DAL - non ho voglia di fare riferimento all'oggetto in memoria per età (in modo da avere una "data di creazione" di proprietà sull'oggetto per l'uso in BL su creazione dell'oggetto non è stato un problema).

Forse c'è una terza opzione che mi viene in mente dopo la lettura di Marr75 la risposta che la registrazione due volte può essere utile in alcuni senarios (una volta in entrambe le posizioni).Si potrebbe ottenere il beneficio di un consisent data/ora a livello dei dati, ma ti piacerebbe avere ancora un BL valore guidato per vedere come immagino dipende dal vostro uso di casi.Questa opzione non è senza qualche rischio, ma la gente potrebbe iniziare a utilizzare la data errata per la cosa sbagliata.

È stato utile?

Soluzione

Io direi:sì.

Forse a prendere l'abitudine di impostazione del creato e lastaccessed date in BL.Poi nel tuo DAL, essere sempre il controllo per i valori null in quei campi.Se sono null, considerare la vostra opzione:la generazione di un'eccezione, o semplicemente la compilazione di tali valori a quel livello.Tipo di catch-all, prima di inserire/aggiornare.

Ho avuto lo stesso modello come descrivi la tua domanda.Allora di fronte l'applicazione uso/consumo timestamp UTC, e ho pensato semplicemente di spostare il comportamento di BL e/o DL classi.Sì, potrei aver usato GETUTCDATE(), ma mi sembrava più appropriato, questa logica del BL/DL.

Altri suggerimenti

Io voto per sempre DAL.Basandosi su date e orari da strati di là del database è stata una fonte di bug per me in passato.Nella maggior parte delle configurazioni, siete più che probabile garantita una costante data e l'ora dalla vostra base di dati.Il tempo di problemi di sincronizzazione client - server e server - server hanno portato brutto, difficile da duplicare, è difficile risolvere i problemi.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top