powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / База для бронирования доступности бассейна (или чего-то еще)
9 сообщений из 9, страница 1 из 1
База для бронирования доступности бассейна (или чего-то еще)
    #39092049
Darooma
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Возникла потребность создать что-то вроде системы бронирования некоего объекта на часовые слоты. Пусть это будет бассейн. То есть, пользовать может забронировать бассейн на определенное кол-во часов и в это время другой пользовать не может этого сделать, то перекрытия во времени не допускаются. Как это лучше сделать?

Я думаю так: 3 таблицы и будет еще job запускаемый раз в день, который будет вставлять данные в таблицу available_slots:



Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
users
  - name
  - login
  - email

available_slots
  - date
  - time

users_bookings
  - user_id
  - start_date_time
  - end_date_time



1) Это допустимая схема? Мне не нравится то, что прийдется как-то "вычитать" из available_slots те значения, которые уже есть в users_bookings (то есть те временные слоты, которые уже забронированы), чтобы отобразить на UI в календаре

2) А что если пользовать отменит бронирование, как это лучше сделать? Удалять эти значения из available_slots или возвращать их available_slots или помечать флагом (is_canceled) в available_slots?
...
Рейтинг: 0 / 0
База для бронирования доступности бассейна (или чего-то еще)
    #39092059
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MS SQL?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
База для бронирования доступности бассейна (или чего-то еще)
    #39092060
Darooma
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov,

без разницы, мне нужно просто спроэктировать.
...
Рейтинг: 0 / 0
База для бронирования доступности бассейна (или чего-то еще)
    #39092061
Darooma
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
может сделать вот так?

Код: sql
1.
2.
3.
4.
available_slots
  - date
  - time
  - user_id (null be default)
...
Рейтинг: 0 / 0
База для бронирования доступности бассейна (или чего-то еще)
    #39092073
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Daroomaбез разницы, мне нужно просто спроэктировать.
Тогда всего одна таблица: список доступных часовых слотов на 10 лет вперёд:
Код: sql
1.
create table rezervation (slot integer, user integer)


При резервации в поле заносится ссылка на клиента. Всё. Конфликты резервации разруливаются
на уровне приложения через update conflict или блокировку таблицы.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
База для бронирования доступности бассейна (или чего-то еще)
    #39092078
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Darooma,

Если разбиение на слоты у Вас не меняется постоянно - лучше сделать slot_template (slot_id, time) и user_booking (slot_id, date, user_id) - т.е. хранить информацию "на 31/10 клиент забронировал периоды 10:00-11:00, 11:00-12:00 и 12:00-13:00". Не нужно никакого job-а,
запрос "свободные слоты на дату" - тривиален.
...
Рейтинг: 0 / 0
База для бронирования доступности бассейна (или чего-то еще)
    #39092082
Darooma
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кот Матроскин, а при отмене бронирования просто удалять запись? Или помечать удаленной? Как лучше в общем случае?
...
Рейтинг: 0 / 0
База для бронирования доступности бассейна (или чего-то еще)
    #39092090
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DaroomaКот Матроскин, а при отмене бронирования просто удалять запись? Или помечать удаленной? Как лучше в общем случае?
От задач зависит.
Если Вы хотите знать, что такой-то слот клиент бронировал, а потом отменил (например, для рейтинга надежности клиентов) - сохраняйте и помечайте, если это никому не нужно - какой смысл тратить место в базе?
...
Рейтинг: 0 / 0
База для бронирования доступности бассейна (или чего-то еще)
    #39092133
Darooma
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ok, спасибо.
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / База для бронирования доступности бассейна (или чего-то еще)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]