-2

MySQL と PHP を使用して、イベント カレンダーに取り組んでいます。

私はすでに日付と時間のテーブルを設定しており、カレンダーはうまく機能しています。複数の部屋のイベント カレンダーを作成する必要があるため、DB に新しい部屋が追加されるたびにテーブルを作成する必要があると考えていました。

私のカレンダーが 30 分と 1 時間の間隔で分割されていることを考慮すると、私のインデックス列は次のよう2010-1-1 00:00:002010-1-1 00:30:00なり2010-1-1 01:00:00ます。また、イベント ID を含む別の列もあります。

部屋を追加するたびに、新しい巨大なテーブルを作成する必要があるため、スペースだけでなく時間もかかりすぎると思います。これに対するより簡単なアプローチはありますか?

4

1 に答える 1

0

以下を含むイベント テーブルを作成する場合:

event_id, room_id, title, start_date(datetime), end_date(datetime)

次に、部屋 1 が午前 11 時 30 分から午後 1 時 30 分まで使用されているかどうかを次のように確認できます。

select count(event_id) from events where room_id = 1 and ((end_date > '2012-10-02 11:30:00')
AND (start_date < '2012-10-02 13:30:00'));

0 より大きい値は、この日時範囲のルーム 1 に既存のイベントがあることを示します。*または、競合するイベントを返し、代わりに選択してユーザーに表示することができますcount(event_id)

于 2012-10-05T16:06:52.573 に答える