- ベストアンサー
予約システム
PHPを使って以下のような予約システムを作りたいと思っています。 http://www.e-418.net/dentist/0661553001/appo.php このような場合データベースには 日付で一日ずつデータが残っていくと思うのですが 予め365日分の日付を登録しておくものなのですか? また、データーベースの効率化を図るために 年度でテーブルは分けるべきなのですか? そうした場合年末年始にかけての日付を表示するにはどのようにすればいいのでしょうか? 私初心者な者ですので 質問の仕方も間違っているかも知れません<(_ _)> よろしくお願いいたします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
> このような場合データベースには > 日付で一日ずつデータが残っていくと思うのですが > 予め365日分の日付を登録しておくものなのですか? えー、参照サイトを基に想像で書いています(笑) 質問のURLの予約できる時間(○になっている箇所)のリンク先が "××.php?...&rsvdttm=1194231600&..." となっているのが確認できると思います。 rsvdttm(ReSerVe DaTe TiMe?)は予約日時を指していて 1194231600はphpのtime関数となっています。 なので、予め日付を登録するのでなく予約が入るごとに一つデータが追加されます。 ■予約データベース フィールド名 || 予約ID | ユーザID | 予約時間 データ || 00001 | sample01 | 1194231600 みたいな感じでデータベースに収納されます。 ■予約システム表示 各日付の営業時間内の:00と:30のtime()で『予約データベース』の「予約時間」を検索し、データが無ければ予約可能なので"○"、そうでなければ"×"を表示させます。 > また、データーベースの効率化を図るために > 年度でテーブルは分けるべきなのですか? > そうした場合年末年始にかけての日付を表示するにはどのようにすればいいのでしょうか? データベースに何を使うかによると思います。 以前、掲示板を作った時にテキストファイルにデータを収納していたことがありますが、数十件でストレスを感じるほど遅かったです。 逆にMySQLなどであれば、数千件データがあっても問題ないと思います。 分けてしまうと過去の予約一覧などを検索するのが大変になると思いますよ。 わかる範囲で答えてみました。
その他の回答 (1)
- yambejp
- ベストアンサー率51% (3827/7415)
通常この手のカレンダー処理は、カレンダーテーブルをつくり 「休日(休診日)」を明示的に登録しておきます。 たとえば「平日なのに休み」とか「休日だけどやっている」ということを 想定しておかないと、いまは予定がなくてもそのうち必要になる 可能性もあります。 逆に稼働日自体も登録してしまう手法もあるでしょうけど あまりがちがちにつくっても仕方がないので、私がやるときは 休日のみ管理が多いです 遠い未来の日付については、表示をしない処理をしておくか、 土日など当座のテーブルを10年分くらい登録しておけばよいでしょう。 (手でやると面倒なのでさらっとプログラムでやればよいでしょう) ちなみに、データの管理にはSQL系のものが必要になるでしょうから それも勘案された方がよいでしょう。 (最低でもCSVなど外部ファイルで管理が必要になると思います。)