Date Créé un exemple spécifique qui m'intéresse - mais il y a d'autres bits de données qui tombent dans la même catégorie: les données que vous voudriez capturer sur n'importe quelle entité vaguement importante. Où est-il préférable de faire ceci: logique métier (BL) ou couche d'accès aux données (DAL)?Date de création - cette valeur doit-elle être définie dans BL ou DAL?
Jusqu'à présent, je me suis appuyé sur getdate()
de SQL Server pour remplir la date créée pour moi sur l'insertion dans la table, mais maintenant je commence à me demander si je devrais faire cela plus dans le BL.
FYI - cela a principalement été dans les systèmes basés sur le Web où vous créez un objet dans le BL (basé sur l'entrée de l'utilisateur) et le déclencher au DAL - ce n'est pas comme si je voulais me référer à l'objet en mémoire pour les âges (donc avoir une propriété "date créée" sur l'objet pour l'utiliser dans le BL sur la création de l'objet n'a pas été un problème).
Peut-être y at-il une troisième option - il me vient à l'esprit après avoir lu la réponse de Marr75 que l'enregistrer deux fois pourrait être utile dans certains senarios (une fois dans les deux endroits). Vous auriez l'avantage d'une date/heure cohérente dans la couche de données, mais vous auriez quand même une valeur pilotée par BL à laquelle faire référence - je suppose que je dépendrais de vos cas d'utilisation. Cette option n'est pas sans risque, cependant - les gens pourraient commencer à utiliser la mauvaise date pour la mauvaise chose.
Je suis d'accord avec votre pensée - mais sûrement une des raisons pour mettre cette responsabilité dans le BL est parce que vous avez des règles que vous voulez appliquer - comme ne pas avoir de null. Était un cas où le BL ne se souciait pas, mais la base de données a fait? –