Frage

Datum ein spezielles Beispiel Erstellt interessiert mich - aber es gibt auch andere Bits von Daten, die in die gleiche Kategorie fallen:. Daten, die Sie über jede vage wichtige Entität erfassen möchten würde

Wo am besten, dies zu tun:? Business-Logik (BL) oder Datenzugriffsschicht (DAL)

Bis jetzt hat mich auf SQL Server getdate() verließ das Datum für mich auf dem Einsatz in die Tabelle erstellt zu füllen, aber jetzt Wunder, dass ich fange an, wenn ich dies in der BL tun sollte.

Zu Ihrer Information - dies war vor allem in der Web-basierten Systemen, in denen Sie ein Objekt in der BL erstellen (basierend auf Benutzereingaben) und feuern sie an der DAL aus - es ist nicht, wie ich auf das Objekt verweisen will schon in Speicher für Alter (also ein „Datum erstellt“ Eigenschaft auf dem Objekt für den Einsatz in der BL bei der Erstellung des Objekts mit hat kein Problem gewesen).

Vielleicht gibt es eine dritte Option - es fällt mir ein, nachdem Marr75 Antwort zu lesen, dass es zweimal Aufnahme in einigen senarios nützlich sein könnten (einmal an beiden Standorten). Sie würden den Vorteil einer konsistent durch Datum / Uhrzeit in der Datenschicht erhalten, aber Sie würden immer noch einen BL angetrieben Wert haben, beziehen sich auch - ich denke, ich auf Ihre Anwendungsfälle abhängen würde. Diese Option ist nicht ohne Risiko, aber -. Menschen beginnen könnten das falsche Datum für die falsche Sache mit

War es hilfreich?

Lösung

Ich würde sagen: Ja.

erhalten Vielleicht in die Gewohnheit, die erstellt und LastAccessed Termine in Ihrer BL Einstellung. Dann in Ihrem DAL, immer für NULL-Werte in diesen Bereichen überprüft werden. Wenn sie null, betrachten Sie Ihre Option: eine Ausnahme zu werfen, oder einfach nur auf dieser Ebene in diesen Werten zu füllen. Art Catch-All vor insert / update.

Ich habe das gleiche Muster hat, wie Sie in Ihrer Frage beschreiben. Ich wurde dann mit mit der Anwendung Verwendung konfrontiert / verbrauchen UTC-Zeitstempel, und ich dachte, ich genau das Verhalten der BL bewegen würde und / oder DL-Klassen. Ja, ich könnte verwendet GETUTCDATE() haben, aber es einfach besser geeignet fühlte diese Logik in der BL / DL zu haben.

Andere Tipps

I Abstimmung für immer den DAL. Unter Berufung auf Daten und Zeiten von Schichten über die Datenbank eine Fehlerquelle für mich in der Vergangenheit gewesen ist. In den meisten Setups, sind Sie mehr als wahrscheinlich ein einheitliches Datum und Zeit aus Ihrer Datenbank gewährleistet. Zeitsynchronisierungsprobleme Client - Server und sogar Server -. Server sind in böse, schwer zu vervielfältigen, zu schwer zu beheben Probleme

resultierten
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top