Бронирование билетов в кинотеатре
форумчане.
Задача: бронирование билетов в кинотеатре. (Спроектированная схема во вложении).
Собственно вопросы:
с чем связать таблицу "Место"? (на один сеанс разные клиенты не должны бронировать одно и тоже место, да и один клиент не должен бронировать одно и тоже место дважды на один сеанс)
в какую таблицу лучше определить атрибут цена?
P.S. Пишу приложение на ASP.NET CORE используя Entity Framework (code first).

Ответы (1 шт):
Автор решения: Rustam Aliev
→ Ссылка
- Заказ и Место объединить, т.к. в создании отдельной таблицы Место нет смысла - у Вас таблица будет пополняться регулярно и, если нет ключа уникальности по строкам (ряд+место), то и смысла в создании таблицы нет. Если такое ограничение уникальности добавить- сможете продать только одно место на один фильм - дальше ограничение уникальности сработает, и продать то же место на другой фильм не получится. Забронированные места доставать из коллекции оплаченных/забронированных заказов по признаку. Проще через LinQ
- Цену так же в Заказ, т.к. имеет прямое отношение к заказу и в других таблицах не имеет практического смысла. Если цену выносить в отдельную таблицу(прикреплять к другой таблице) - не будет историчности данных при повышении цены. Надеюсь понятно объяснил.