0

私は現在、PHPを使用したクラススケジューリングに取り組んでいます。私がしたいのは、スケジュールがすでに存在するか、データベース内の他のスケジュールと重複するかどうかをユーザーに通知することです。

スケジュールごとに、3つのことを考慮する必要があります。時間、日、部屋。

例:

DBに存在: MWF 9:00 am-10:00am; 部屋A


ユーザー入力#1: MWF 9:00 am-10:00am; 部屋A

通知:既存のスケジュール。

ユーザー入力#2: MWF 8:00-10:00am; 部屋A

ユーザー入力#3: MWF 9:30-10:00am; 部屋A

通知:スケジュールの重複。

アイデアをお願いします。ありがとう。

4

1 に答える 1

1

これが擬似コードの迅速で汚い解決策です

テーブルルーム(Room_id [int]、Room_name [varchar])
テーブルroom_use(日曜日[ビット]、月曜日[ビット]、火曜日[ビット]、水曜日[ビット]、木曜日[ビット]、金曜日[ビット]、土曜日[ビット] 、Start_time [Time]、End_time [Time])

Start transaction;
select count(*) as n from Room_use 
where Room_id=?  and  Time between ? and ?  and
#build this dynamically with php
(Sunday=1 or Monday=1 or Tuesday=1 or Wednesday=1 or Thursday=1 or Friday=1 or Saturday=1)

if n>0 rollback
else insert into room_use (Room_id, Sunday, Monday .......) values (?,?,?......)
commit;
于 2013-03-14T03:54:29.460 に答える