Мне недавно задали вопрос об интервью по гипотетической веб-системе бронирования и о том, как мне разработать схему базы данных, чтобы минимизировать дублирование и максимально повысить гибкость.
Вариант использования: администратор может указать наличие свойства в системе. Может быть установлено несколько периодов времени. Например, с 1 апреля 2009 г. по 14 апреля 2009 г. и с 3 июля 2009 г. по 21 июля 2009 г.
Пользователь тогда может сделать бронирование только в те периоды, которые доступны для равных или более коротких периодов.
Как бы вы сохранили эту информацию в базе данных?
Вы бы использовали что-то столь же простое (действительно упрощенное), как;
AVAILABILITY(property_id, start_date, end_date);
BOOKING(property_id, start_date, end_date);
Не могли бы вы тогда легко создать веб-страницу, на которой бы отображался календарь доступности с периодами, которые были зарезервированы. Будет ли легко создавать отчеты из этой схемы базы данных? Это так просто, как кажется?