1

課題 : 定期的なイベントを実装する必要があるという要件があります。イベントが再発する曜日、時間、日付範囲を保存しています。

考えられる解決策: 時刻と曜日を文字列と列挙として保存します。現在の保存とその日の時刻と曜日の設定 ?

質問: 時刻と曜日を保存するベスト プラクティスは何ですか?

EDT: SQL Server データベースを使用しています

4

2 に答える 2

2

この最適なアプローチは、使用しているデータベースによって異なる場合があります。しかし、2 つの一般的なアプローチがあり、どちらも非常に合理的です。

1 つ目は、日付と時刻をデータベースのネイティブ形式で保存することです。ほとんどのデータベースには、日時型から曜日と時刻を抽出する関数があります。これらの関数を使用してクエリを記述します。通常、これらは 1 つのフィールドとして保存しますが、日付と時刻の部分を分けたい場合もあります。

2 つ目は、カレンダー テーブルを用意することです。カレンダー テーブルには、キーとして日付または日付 ID があり、それについて知りたいことの列が含まれます。曜日は明らかな列です。

状況によっては、カレンダー テーブルが推奨されるソリューションです。たとえば、アプリケーションを国際化する場合、テーブルから曜日を取得できると、英語、ギリシャ語、中国語、ロシア語、スワヒリ語など、好きな言語の文字列を簡単に取得できます。または、特定の休日を追跡したい場合は、カレンダー テーブルにこの情報も格納できます。または、奇妙な財務カレンダー (5-4-4 など) でビジネスを運営している場合は、カレンダー テーブルが適しています。

いずれの場合も、冗長な日付情報をテーブルに格納する必要はありません。組み込み関数から、または参照テーブルで必要なものを検索して、それを導出する必要があります。

于 2012-06-04T18:37:48.723 に答える