開店時間のデータベースを設計して、このソリューションを作成しました。
MySQLとなるデータベースの仕様は、場所には週に標準的な営業時間があり、クリスマスなどの特別な営業時間を持つことができるというものです。
したがって、エントリの営業時間を知りたい場合は、最初に「special_opening」で特定の日を検索し、結果が返されない場合は「opening」からデータをロードします。
これはデータベースを実現する正当な方法ですか?それを行うより良い方法はありますか?
日付範囲と競合するレコードを解決するための優先度コードを含む単一のテーブルにすべての営業時間を保持することで、設計を簡素化してより強力にすることができます。
次のようになります。
create table OPENING
( id INT
, entry_id INT
, from_date DATE
, to_date DATE
, priority INT
, weekday_id INT
, start TIME
, end TIME
, pause_start TIME
, pause_end TIME
, editor_id INT
, timestamp TIMESTAMP
)
モデルとこのモデルの違いは次のとおりです。