飲食店情報サイトシステムを構築しております。
使用DBはMySQLです。
お店ごとに異なる「営業時間」の項目を格納するのに最適な型について、
いい案がありましたらご教授お願い致します。
A店(喫茶) 9:00〜18:00
B店(バー) 21:00〜翌3:00
C店(洋食店)11:00〜15:00、18:00〜22:00
営業時間は検索や現在時刻との連動に使用しますので、
varchar型で上記テキストのまま格納する事は避けたいです。
営業時間1・営業時間2 の様に2列になるのはOKです。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答4件
0
店舗のテーブルと店舗別営業時間のテーブルを別にして、仮に営業時間が3分割されても大丈夫にする案も考えられます。
店舗
- 店舗ID INT
- 店舗名 VARCHAR
店舗別営業時間
- 店舗ID INT
- 開始時間 TIME
- 終了時間 TIME
店舗別営業時間の方は、主キーを「店舗ID+開始時間」にしておくといいでしょうかね。その2つで重複はしないと思うので。
営業時間1 営業時間2 みたいなのは、ちょっと心が痛みます。
この方法のもう一つのメリットとしては、ちょっと冗長になりますが、
- 店舗テーブルに「表示用営業時間」列を設ける
- 「21:00~翌3:00」のような値をそこに入れる
- 画面への表示ではこれを使用する
- 店舗別営業時間では次の2行を登録する
- 00:00 - 03:00
- 21:00 - 24:00
- 検索にはこれを使用する
このようにすることで、検索の SQL が少し簡単になることが期待できます。
投稿2015/07/30 09:02
編集2015/07/30 09:45総合スコア4514
0
ベストアンサー
ご回答ありがとうございます。
ご参考にさせて頂きましたが、結果的には
データベース側には「10,18」「21,3」といった形でデータ登録を行い、
システム側で配列にて処理する事となりました。
ありがとうございましたm(__)m
投稿2015/08/05 01:16
退会済みユーザー
総合スコア0
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
飲食店等の場合は、昼の部、夜の部で2パターンの時間設定が必要かと思います。
その為、営業時間2つ登録出来るようにし、フラグ判定により終日営業か時間帯営業か区別するなどはいかがでしょうか?
データベースに、
営業時間帯判定フラグカラム(0:終日営業、1:昼夜営業(準備時間帯がある場合)、2:昼営業、3:夜営業)
営業時間帯(昼)カラムFromTo(終日営業の場合は、昼の営業時間帯にデータを格納するなど決めうち)To
営業時間帯(夜)カラムFrom
なんて思ったのですが・・・。
投稿2015/07/30 08:50
総合スコア1158
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2015/07/30 09:43 編集
退会済みユーザー
2015/07/30 10:03
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。