[解決済み] 営業時間のデータベースへの格納
2023-02-23 13:42:17
質問
私は現在、ある企業の営業時間をデータベースに保存するための最良の方法を見つけようとしています。
たとえば
ビジネスAは次のような営業時間です。
- 月曜日:午前9時~午後5時
- 火曜日:午前9時~午後5時 水曜日:午前9時~午後5時 木曜日:午前9時~午後5時
- 金曜日:午前9時~午後5時
- 土曜日 午前9時~午後12時
- 日曜日 休業日
現在、私は以下のようなデータモデルを持っています。
CREATE TABLE "business_hours" (
"id" integer NOT NULL PRIMARY KEY,
"day" varchar(16) NOT NULL,
"open_time" time,
"close_time" time
)
ここで、quot;day"はコード内で(ORMを通して)7つの曜日の中から選択するように制限されています。ビジネスが特定の日に閉じているかどうかをテストするために、open_timeとclose_timeがNULLであるかどうかをチェックします。これは中間テーブル(Many To Many Relationship)を通してビジネスに関連しています。
このデータベーススキームについて、どなたかご提案がありますか?何か私には正しいとは思えません。
どのように解決するのですか?
全体としては、何も問題ないと思います。ただし...
-
私なら、ネイティブのプログラミング言語が(そのライブラリで)使用するどのような番号付けシステムでも使用して、曜日を整数として保存します。これにより、データベースのサイズが小さくなり、コードから文字列の比較を取り除くことができます。
-
私はおそらく、ビジネス・テーブルへの外部キーをこのテーブルのここに置くでしょう。そうすれば、リンクテーブルが不要になります。
というわけで、私ならこうするかな。
CREATE TABLE "business_hours" (
"id" integer NOT NULL PRIMARY KEY,
"business_id" integer NOT NULL FOREIGN KEY REFERENCES "businesses",
"day" integer NOT NULL,
"open_time" time,
"close_time" time
)
ビジネスロジックでは、すべてのquot;business"は、以下の制約を強制します。 少なくとも 7つの営業時間(7 "business")があることを強制します。 少なくとも は、Jon Skeetの言うとおり、休日営業が必要かもしれないからです)。しかし、ビジネスが休みの日には、単に "営業時間" を省くことによって、この制約を緩和したいと思うかもしれません。
関連
-
[解決済み] ATTACHで開いたSQLiteデータベースファイルのテーブルを一覧表示するにはどうすればよいですか?
-
[解決済み] データベースのカラムに区切りリストを格納することは、本当に悪いことなのか?
-
[解決済み] データベース レコードを削除するかしないか
-
[解決済み] なぜORMを使う必要があるのですか?[クローズド]
-
[解決済み] データベースとファイルシステムストレージ
-
[解決済み] scale horizontallyとscale verticallyの意味を教えてください。重複
-
[解決済み] Neo4jでデータベースを削除/作成する方法は?
-
[解決済み] MS Accessの代替となるフリーソフト [終了しました]。
-
[解決済み] DynamoDBからアイテム数を取得するには?
-
[解決済み] SQL Developerで新しい接続を追加する際にOracle TNSの名前が表示されない
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] 変更履歴/監査データベーステーブルの最適なデザインは?[クローズド]
-
[解決済み] SQLite UPSERT / UPDATE OR INSERT
-
[解決済み] リレーショナル・データベースにおけるカタログとスキーマの違いは何ですか?
-
[解決済み] データベースに郵便番号を格納する必要があります。カラムの大きさはどのくらいにすればよいでしょうか?
-
[解決済み] scale horizontallyとscale verticallyの意味を教えてください。重複
-
[解決済み] Neo4jでデータベースを削除/作成する方法は?
-
[解決済み] MS Accessの代替となるフリーソフト [終了しました]。
-
[解決済み] H2データベースを管理するフロントエンドツール【終了しました
-
[解決済み] データベースで月額課金システムを設計するためのグッドプラクティス【終了しました
-
[解決済み] データベースからdjangoのモデルを生成することは可能か?