Я хочу построить систему бронирования отелей, которая также обеспечит доступность менеджера канала.Я хочу использовать Firestore для хранения моих данных.Я прочитал несколько статей, но все еще довольно плохо знаком с этим.
Я планирую настроить свою базу данных, используя такую структуру:
collection: "reservations"
поля: booking_id, статус, имя, адрес электронной почты, дата заезда, дата выезда, room_id и т. Д.
collection: "rooms"
поля: room_id, room_type, room_number,etc
коллекция: «доступность»
поля: room_id, date, isAvailable, примеры: {room_id: 1, date: «2018-10-05», isAvailable: true}, {room_id:1, дата: "2018-10-06", isAvailable: true}
Вот некоторые ситуации, которые мне понадобятся:
Ситуация: Создано новое бронирование
Я создам новый документ о резервировании, а также обновлю документы о доступности на эти даты.
Ситуация: просмотр всех комнат по нескольким календарям
Я получу все документы по датам и комнатам и отобразлю их в виде сетки
Мои вопросы:
(1) Это лучшая структура для Firestore?
(2) Нужно ли устанавливать «доступность» как подколлекцию «комнат»?
Единственное, мне нужно получать доступность всех комнат достаточно часто, чтобы это вызывало много операций чтения.
(3) Сохраняю ли я Date как объект отметки времени или строку?Час / минута не требуется, поэтому для меня это выглядит слишком много, и мне нравится "2018-10-05", это выглядит аккуратно.
(4) Как мне написать запрос для обновления доступности, когдановое бронирование создано?Как получить желаемый диапазон дат?
Спасибо, что прочитали мои вопросы:)