MYSQLで部屋を利用するための予約システムを作ろうと考えております。 設計として下記を考えてみたのですがおかしいでしょうか。 要件は下記のとおりです。 ・A、B、C3つの部屋の利用予約を時間単位でおこなう ・重複する時間は予約できない ・日を跨ぐ予約はできない テーブル設計 トランID(int)|開始時刻(datetime)|終了時刻(datetime)|部屋ID(int) 時間についてはdatetime式で2013-03-22 12:00:00 と保存させる予定です。 入力を簡素にするため、時刻は時、分個別のプルダウンで30分刻みにしようと考えています。 そこで分からなくなってきたのがデータ保持の方法なのですが、 例えば10:00-12:00と予約入力された場合、datetime式ですと秒まで保存されますので 2012-03-22 10:00:00 - 2012-03-22 12:00:00 となりますよね。 そうなりますと、別の予約で12:00-15:00を確保したい場合、開始時刻は重複してしまうことに なりますので、テーブルには2013-03-22 10:00:01 - 2013-03-22 11:59:59と登録したほうが いいのでしょうか。 ただ、これだと時間を変更したい場合の修正の際に困ったことになりそうです。 またこの設計の場合、 開始時刻と終了時刻が他の予約と重複していないかのSQLを 考える場合、非常にやっかいなような気がしてきました。 何か別のよい設計のヒントがあればご教授願えないでしょうか。 宜しくお願いいたします。
↧