質問: 観光地リストのデータを作成しているのですが、定休日の設定で困っています。 具体的には **close_mon** ~ **close_sun** のカラムを用意して0, 1で判断しているのですが、場所によっては 「第二火曜日と第三月曜日は休み」や「振替休日休館」等ランダムな場合が多くあります。 こういったケースの場合はどのようにテーブルカラムを用意して設計をするのが好ましいのでしょうか?
回答: 個人的なやり方になりますが、大雑把でいいなら定休日は 大体同じパターンに収束するのでパターン部分を別テーブルにします。 > > テーブル1 > > close_id 定休日パターンに紐付けるIDカラム > > > テーブル2 > > close_id > > close_pattern 定休日のパターン(計算式) > > > 予想される休日のパターン数がある程度の数に収束するならこれで、 極端に多くなる(数千パターンとか)になるなら更に分解して作りこみますね。 例えば「第二火曜日と第三月曜日は休み」は 「第二火曜日」と「第三月曜日」の定休日を合わせたものです。 他に完全ランダムな場合のやり方としてはカレンダーテーブルを用意して 全日ON/OFF設定してしまうとかですね。 ``` shop_holiday -テーブル例 id,year,switch -カラム a01,2015,11100011100000~365桁の1と0で休日を表現 -データ ```