解決したい問題 例として、飲食店の予約サービスを考える。 予約を受け付けるためには各店舗の営業スケジュールを管理しておいて、営業日の営業時間内のみ予約を受け付けるようにする必要がある。 たとえば、ある店舗は各曜日の営業時間について、以下のように定めているとする。 平日:11:30-22:00 土曜日:11:00-22:00 日曜日:11:00-21:00 定休日:木曜日 これを素朴に設計すると、たとえば以下のような「営業日については営業時間を保持し、定休日についてはレコードがない」というテーブルになるかもしれない。 店舗 曜日 開店時刻 閉店時刻
![営業日などの規則性と例外を扱うための設計](https://cdn-ak-scissors.b.st-hatena.com/image/square/1c8ae2888c0a6b7d65d45c972550ef952006dc5d/height=288;version=1;width=512/https%3A%2F%2Fblog.osa.in.net%2Ficons%2Ficon-512x512.png)