Stack Overflow на русском Asked on January 4, 2022
Всем привет у меня есть задание:
Создайте простую систему бронирования жилья (сам бэкэнд, не нужен
фронт) . Основа:
- квартиру можно снять на сутки (минимальное количество – 1 сутки)
- одна квартира имеет в один момент Х свободных слотов т. е. может быть сдана в аренду для X людей одновременно (не обязательно с одним
бронированием что-то вроде общежития / размещения с возможностью
бронирования кроватей)- при бронировании более 7 дней мы предоставляем скидку X%
- пользователь при бронировании определяет начальную, конечную дату и количество человек / кроватей.
Реализация будет на симфони, но думаю для моего вопроса это не важно.
По этому заданию у меня получилась такая структура бд:
user
id|email
Как сделать для кроватей/квартиры? К таблице user_appartament
добавить поле beds
и при выборе целой квартиры вставлять сюда количество слотов с сущности appartament
? Или лучше добавить ещё одно булево поле full
в которой буду обозначать, что будет снята вся квартира?
Если есть лучшее предложение по структуре бд или название таблиц, то прошу предлагать)
Есть несколько мелких замечаний, а в целом - годится.
user_appartment
я бы переименовал в reservation
- ведь это то, что по сути представляет собой запись в этой таблицеfull
или beds
нет, если поле guests
уже хранит количество зарезервированных данной резервацией мест. Это производные поля, которые денормализуют данные без особой на то необходимости. Количество свободных мест в квартире всегда известно: это разница между apparment.slots
и sum(reservation.guests)
для всех резерваций данной квартиры.discount
. Оно однозначно определяется на основе полей start_date
, end_date
.Answered by Roman Konoval on January 4, 2022
2 Asked on August 29, 2021 by itsfrit
0 Asked on August 29, 2021
1 Asked on August 29, 2021 by user396842
0 Asked on March 5, 2021
2 Asked on March 5, 2021 by asqar-arslonov
1 Asked on March 4, 2021 by parrothi
2 Asked on March 3, 2021 by zevilcube
pyqt pyqt5 python python 3 x %d0%bc%d0%bd%d0%be%d0%b3%d0%be%d0%bf%d0%be%d1%82%d0%be%d1%87%d0%bd%d0%be%d1%81%d1%82%d1%8c
0 Asked on March 3, 2021 by s1nger-iwni
0 Asked on March 3, 2021 by think-tank
1 Asked on March 2, 2021 by maxdembovsky
2 Asked on March 2, 2021 by ruslannnn
0 Asked on March 2, 2021 by paul-muller
2 Asked on March 2, 2021 by saer
Get help from others!
Recent Answers
Recent Questions
© 2023 AnswerBun.com. All rights reserved. Sites we Love: PCI Database, MenuIva, UKBizDB, Menu Kuliner, Sharing RPP, SolveDir