2011-07-08 9 views
0

私は、特定の曜日と時間帯に利用可能なすべてのユーザーを返すクライアント用のツールを開発しようとしています。たとえば、ユーザーは現在の週次スケジュールを入力し、データベースはそのスケジュールを保存します。そのテーブルの各行には、ユーザー名、曜日、使用不可の開始時刻、および使用不可の終了時刻が含まれます。クライアントが日、開始時刻、および終了時刻を入力する場合は、スクリプトはその指定時刻に利用可能なすべてのユーザーを返すようにします。この問題にどう対処するか考えていますか?具体的には、情報を保存して処理する最も効率的な方法を探しています。どんな助けでも大歓迎です。可能なテーブル構造の例を次に示します。スケジュールエントリに基づいてPHPとMySQLを使用して可用性スクリプトを作成する方法は?

UserName  DayOfWeek  StartTime  EndTime //Times when unavailable 
jdoe   Mon   09:30:00  10:30:00 
jdoe   Mon   11:30:00  12:45:00 
jdoe   Tue   14:50:00  16:20:00 
hsmith  Wed   16:20:00  17:55:00   

答えて

0

開始日と終了日を日付として保存します。 2011-01-01 09:00:00その後、可用性のためにあなたが

SELECT * 
    FROM userTable 
    WHERE userName NOT IN (SELECT userName 
          FROM userTable 
          WHERE #{date to check} BETWEEN startTime AND endTime) 

ような何かを行うことができ、私はこれを試していませんでしたし、やるべきいくつかの正常化はありますが出発点

+0

感謝する必要があります!これは1回のテスト(2011年7月4日午前9時)に動作しますが、範囲を確認したい場合はどうすればよいですか? (2011年7月4日午前9時〜午前10時) –

関連する問題