Мне нет дела до схемы на диаграмме. Это довольно некрасиво.
Схема абстрактная
Таблица: Визит
Таблица посещений содержит одну строку для каждой ночи проживания в отеле.
Примечание: посещение содержит
- ixVisit
- ixCusomer
- дт
- sNote
Таблица: Заказчик
- ixCustomer
- sFirstName
- sLastName
Таблица: Пребывание
Таблица пребывания включает одну строку, которая описывает весь визит. Он обновляется каждый раз, когда посещение обновляется.
Примечания
Веб-приложение - это две вещи: действия SELECT и действия CRUD. Большинство веб-приложений на 99% SELECT и 1% CRUD. Нормализация помогает CRUD гораздо больше, чем SELECT. Вы можете посмотреть на мою схему и панику, но это быстро. Вам придется проделать небольшую дополнительную работу для любого действия CRUD, но ваш SELECTS будет намного быстрее, потому что все ваши SELECTS могут попасть в таблицу Stay.
Мне нравится, как говорит Джефф Этвуд: "Нормализуй, пока не болит, денормализуй, пока не заработает"
Для веб-сайта, используемого занятым менеджером отеля, его эффективность не менее важна, чем скорость его работы.