2012-04-26 11 views
0

私はPHP、MySQLを使用して教育機関で使用するウェブサイトを開発しています。PHP/MySQLの講義割り当て

この機能の1つは、バッチを作成するときに講義を割り当てることです。開始バッチに講義を割り当てるために、システムは利用可能性と資格に基づいて利用可能な講義を促します。コースコーディネーターが決定を下します。

私の問題は、時間帯指定した特定の曜日に講義の可用性を確認する方法です。それは示し、ここで私は、テーブルに講義スケジュールを維持するために計画しています

(タイムスロットが固定されていない期間を変化させています) lecture_Id、Batch_Id、day、start_time、end_time、start_day、end_day。

可用性チェックの際に、利用可能なlecture_Idを確認するために複雑なクエリを記述する必要があります。私はまだそれを把握できませんでした。

これを行うための他のスマートな方法はありますか?あなたが情報を保存することを提案している

おかげ

+0

4つの時間フィールドをMySQLの2つのDATEフィールドに変更することをお勧めします。 – nyson

答えて

0

方法は、私はそれをやって考えると思います最初の方法である - 複雑なクエリはも悪くないです。

正しく理解すれば、lecture_schedulesテーブルと1対1の関係で、別のテーブルに格納された講義がありますか? この場合、指定した時間範囲の講義内容が表示されます。

このような何か:

SELECT * FROM lecture_schedules 
     INNER JOIN lectures USING(lecture_id) 
     WHERE start_day<=DAY(yourstarttime) AND end_day>=DAY(yourendtime) 
     AND start_time<=yourstarttime AND end_time>=yourendtime; 

はあなたの実際のスキーマを反映するために、テーブル名とカラム名を編集する必要があり、時間範囲の値でyourstarttimeyourendtimeに置き換えられます注意してください。

・ホープこのことができます

EDIT:このクエリは、スキーマ内の列とそれらの列のデータ型に関するいくつかの仮定になり - ちょうど&ペーストをコピーして、それが最初の時間に動作するように期待しないでください:)を