parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

Ответ

G_Z 23.07.2007 12:44 / 23.07.2007 12:48

Насколько я понимаю, храните в таблице бронирования вы периоды свободы объектов.
Навскидку:
SELECT
boject.id AS object_id,
boject.value AS object_name,
IFNULL(bbooking.dt_begin, 'free') AS period_start,
IFNULL(bbooking.dt_end, 'free') AS period_finish
FROM
tblObjects AS boject
LEFT JOIN tblBooking AS bbooking
ON (boject.id = bbooking.oid)
WHERE
(
 bbooking.dt_begin >= '2007-07-01'
 AND bbooking.dt_end <= '2007-07-10'
)
OR (bbooking.dt_begin IS NULL AND bbooking.dt_end IS NULL)
(индекс по oid, dt_begin, dt_end сильно желателен)

Для доставания информации это хорошо, идеологически — неверно.
Т.к. в этом случае, вам нужно держать периоды для всех объектов.

Правильнее хранить периоды занятости объектов, соотвественно, на свободные объекты тогда записи не нужны.
Но как тогда вычислять период свободы забронированного объекта — сходу не соображу, надо подумать.