lbondodesc
@lbondodesc
PHP Developer

Как правильно спроэктировать БД «броннирование »?

Здравствуйте! Мне нужно правильно спроектировать БД (уборка Номеров в отеле). Уборка проводится каждую неделю в занятом номере, но клиент может назначить день уборки (например каждый вторник)! Для остальных номеров (не забронированых уборку делать не нужно). Но также можно назначить уборку для номера отдельную.
То что я сделал . Сейчас у меня 3 таблицы rooms, cleanings, workers.

Cleanings (
id_cleaning bigint(20) NOT NULL
date_cleaning date NULL
id_room int(11) NULL
id_worker int(11) NULL
notes text NULL // Нотатки для каждой уборки что конкретно убрать что не требуется
clean_status tinyint(4) NULL)
)
Rooms (
id_room int(11) NOT NULL
number varchar(5) NOT NULL
last_cleaning date NULL // Последняя уборка необязательно
status tinyint(4) NULL // Статус комнаты необязательно
cleaning_day tinyint(7) NULL // День для регулярной уборки номера
lock_start date NULL //старт бронирования номер
lock_finish date NULL // виезд клиента
)

Workers ( //Тот кто будет убирать комнату,
id_worker int(11) NOT NULL
name varchar(50) NOT NULL
phone varchar(20) NULL
)
На выходе в программе у меня должна получится такая вот похожая таблица:
Скрин приложения

Жду Вашых советов, что можно добавить, что убрать! спасибо!
  • Вопрос задан
  • 2476 просмотров
Решения вопроса 1
lbondodesc
@lbondodesc Автор вопроса
PHP Developer
Сделал вот так! 011aac7b26104ffcb2723571c000320e.png
А актуальные резервации определяю запросами вида
SELECT * 
FROM reservation
LEFT JOIN rooms ON rooms.id_room = reservation.id_room
WHERE reservation.lock_finish >= CURDATE()
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы