AnswerBun.com

Правильно ли я составил структуру бд по заданию?

Stack Overflow на русском Asked on January 4, 2022

Всем привет у меня есть задание:

Создайте простую систему бронирования жилья (сам бэкэнд, не нужен
фронт) . Основа:

  • квартиру можно снять на сутки (минимальное количество – 1 сутки)
  • одна квартира имеет в один момент Х свободных слотов т. е. может быть сдана в аренду для X людей одновременно (не обязательно с одним
    бронированием что-то вроде общежития / размещения с возможностью
    бронирования кроватей)
  • при бронировании более 7 дней мы предоставляем скидку X%
  • пользователь при бронировании определяет начальную, конечную дату и количество человек / кроватей.

Реализация будет на симфони, но думаю для моего вопроса это не важно.
По этому заданию у меня получилась такая структура бд:

user
id|email

Как сделать для кроватей/квартиры? К таблице user_appartament добавить поле beds и при выборе целой квартиры вставлять сюда количество слотов с сущности appartament? Или лучше добавить ещё одно булево поле full в которой буду обозначать, что будет снята вся квартира?
Если есть лучшее предложение по структуре бд или название таблиц, то прошу предлагать)

One Answer

Есть несколько мелких замечаний, а в целом - годится.

  1. user_appartment я бы переименовал в reservation - ведь это то, что по сути представляет собой запись в этой таблице
  2. смысла добавлять поля full или beds нет, если поле guests уже хранит количество зарезервированных данной резервацией мест. Это производные поля, которые денормализуют данные без особой на то необходимости. Количество свободных мест в квартире всегда известно: это разница между apparment.slots и sum(reservation.guests) для всех резерваций данной квартиры.
  3. Точно так же нет смысла хранить производное поле discount. Оно однозначно определяется на основе полей start_date, end_date.

Answered by Roman Konoval on January 4, 2022

Add your own answers!

Related Questions

Нумерация вершин графа в pictureBox

0  Asked on August 29, 2021 by lana-littleswallow

   

Программа выдаёт ошибку

1  Asked on March 11, 2021 by user410415

 

Ответ на пост-запрос

0  Asked on March 9, 2021 by ziltoid

     

Расчет pts dts и duration FFmpeg и C++

1  Asked on February 28, 2021 by zeusbios

     

Ask a Question

Get help from others!

© 2023 AnswerBun.com. All rights reserved. Sites we Love: PCI Database, MenuIva, UKBizDB, Menu Kuliner, Sharing RPP, SolveDir