Бронирование билетов в кинотеатре

форумчане.

Задача: бронирование билетов в кинотеатре. (Спроектированная схема во вложении).

Собственно вопросы:

  1. с чем связать таблицу "Место"? (на один сеанс разные клиенты не должны бронировать одно и тоже место, да и один клиент не должен бронировать одно и тоже место дважды на один сеанс)

  2. в какую таблицу лучше определить атрибут цена?

P.S. Пишу приложение на ASP.NET CORE используя Entity Framework (code first). введите сюда описание изображения


Ответы (1 шт):

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