質問

日付は私が興味の特定の例を作成した - しかし、同じカテゴリに分類されたデータの他のビットがあります:あなたはどの漠然と重要なエンティティに関するキャプチャしたいと思い、データが

ビジネス・ロジック(BL)、またはデータアクセス層(DAL)

:?最高はこれを行うには、

これまで私はテーブルへの挿入に私のために作成された日付を移入するためにSQL Serverのgetdate()に頼ってきましたが、私はよりBLでこれを行うべきであるならば、今、私は不思議に始めてます。

FYI - これは主にあなたがBLでオブジェクトを作成し、Webベースのシステムになっている(ユーザー入力に基づいて)とDALでそれをオフに火災 - それは私がしてオブジェクトを参照したいと思ってきたようではありません年齢のためのメモリ(そのオブジェクトの作成にBLで使用するためのオブジェクトの「作成日」の性質を有するが問題にされていない)。

おそらく、第三の選択肢があります - それは、それを2回記録すると、一部senarios(両方の場所で1回)で役に立つかもしれないことをMarr75の答えを読んだ後、私に起こります。あなたは、データ層にconsisent日付/時刻の利益を得るだろうが、あなたはまだ、同様に参照するためのBL駆動値を持っているだろう - 私はあなたのユースケースに依存したいと思います。人々は間違ったことに対して間違った日付を使用して開始する可能性があります。

- かかわらず、このオプションは、いくつかのリスクがないわけではありません。
役に立ちましたか?

解決

私が言うと思います:はい

おそらく、あなたのBLで作成したとlastaccessed日付を設定するのが習慣に取得します。次に、あなたのDALに、常にこれらのフィールドでNULL値をチェックします。彼らしているnullの場合は、あなたのオプションを検討してください。その層でそれらの値に例外、または単に充填を投げます。挿入/更新する前に、キャッチオールの種類ます。

私はあなたの質問に説明するように同じパターンを持っていました。私はその後、UTCタイムスタンプ消費/アプリケーションの使用を持つに直面し、私はちょうどBL及び/またはDLクラスにその行動を移動したい考え出しました。はい、私が使用GETUTCDATE()をした可能性がありますが、それだけでBL / DLでこのロジックを持つことが、より適切なと感じます。

他のヒント

常にDALのための

私が投票。データベースを超えた層からの日付と時間に依存することは、過去の私のためにバグの原因となっています。ほとんどの設定では、あなたは以上の可能性の高いデータベースのうち、一貫した日付と時刻を保証しています。時刻同期の問題クライアント - サーバー、さらには、サーバ - サーバは、厄介な複製するのは難しい、修正問題にハードをもたらしてきた。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top