Я создаю приложение для бронирования, где люди могут записывать некоторые встречи в чужом календаре.бизнес-потребности следующие:
- кто-то должен иметь возможность настроить некоторые повторяющиеся возможности в своем календаре: каждый понедельник с 10:00 до 12:00 и с 15:00 до 18:00
- кто-то должен иметь возможностьнастроить доступность по времени: понедельник, 24 декабря, с 10:00 до 12:00 и с 15:00 до 16:00, и это должно полностью перезаписать повторяющуюся доступность для данного дня
- кто-то должен иметь возможность настроить время un доступность: понедельник, 24 декабря, с 10 до 11, и этому следует отдавать приоритет перед доступностью (повторяющаяся или рассчитанная по времени)
Учитывая 3 следующих примера, попытка бронирования в понедельник, 24 декабря, с 10 утрадо 10:30 утра должно быть отказано.
Я борюсь с тем, как проектировать эту систему с точки зрения базы данных.
Заказы будут храниться в собственной таблице, и они должны действоватькак недоступность.Но как насчет конфигурации доступности?Должен ли я хранить доступность?недоступности?оба?
Буду признателен за любые советы по дизайну модели календаря.