人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

PHPとMySQLを使って予約システムを作ろうとしています。
そこでアドバイス頂きたいです。
例えば、不特定多数の講師に対して、不特定多数の会員が予約をするシステムなのですがデータベース設計はどのようにしたらベストなのでしょうか?
講師マスターと会員マスターは既にあるものとします。
・現在日時から2週間分の予約が出来る
・各講師に対し各会員が、毎日9:00から24:00まで、30分刻みを1ブロックとし予約ができる
このような感じで予約のDBのアドバイスお願いいたします。

●質問者: norif_h
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:00 24 DB MySQL PHP
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● kn1967
●60ポイント ベストアンサー

>現在日時から2週間分の予約が出来る

php側で現在日時から2週間分だけ表示したり

受付したりするようにすれば良いだけですから

データベース側の設計は特に関係ないです。


>毎日9:00から24:00まで、30分刻みを1ブロック

指定の方法として

・開始時間とブロック数で指定する方法

・ブロック単位で指定する方法

のいずれが使いやすいかですが

ダブルブッキングを検索しやすいのはブロック単位の指定です。


ユーザー画面では開始時間とブロック数を入力してもらう形でも構いませんが

受け取ったphp側で、どのブロックとどのブロックかといったように

変換してデータベースに保存しておくと

既に埋まっているかどうかの確認が楽です。


仮に予約管理テーブルとでも命名しますと

整理番号(プライマリキー)

日時(書き込まれた日時)

講師ID(講師マスターと連携するための外部キー)

会員ID(会員マスターと連携するための外部キー)

予約日(予約したい日付)

予約ブロック(例:9時なら1、9時半なら2、10時なら3など)

削除日時(キャンセルが書き込まれた日時)

予約日とブロックで検索してデータがあれば予約済みとなります。


講師のスケジュールをしたいのであれば講師IDを指定して

本日から2週間分だけを検索、会員なら会員IDを指定して以下同文。

キャンセルの締め切りはphp側で現在日時から

受付可能かどうかを計算すれば良いですよね。


古くなった情報は不要ということであれば定期的に

予約日で削除するなり、バックアップしてから削除するなりすればよろしいかと。


以上、簡単ではありますが、お役に立ちますでしょうか・・・。

※コメント欄開けておくと、他の方からツッコミいただけるかも・・・。

◎質問者からの返答

ありがとうございます。

まさに欲しかった情報です。

なるほど、予約ブロックに番号をつけて管理ですね。

勉強になります。

※コメント欄開けておきました。。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ