Помогите разобраться в системе бронирования

#sql #entity-relationship

#sql #сущность-отношение

Вопрос:

Я создаю систему бронирования кинотеатров.

Я совершенно не понимаю, как я могу получить несколько билетов на одно бронирование и иметь возможность запрашивать эти билеты отдельно. (поля, которые не имеют отношения к вопросу, не были включены)

У меня есть таблица билетов:

 ticketId, ticketName
  

Таблица бронирования:

 bookingId, bookingReference, ticketId
  

При подключении этого я получу возможность создавать много билетов, но BookingID будет меняться каждый раз, мне понадобится возможность находить все билеты, связанные с бронированием, а затем запрашивать отдельный билет, чтобы его можно было использовать для печати одного билета и т.д.

Кто-нибудь может помочь мне понять, что мне нужно сделать.

Спасибо.

Ответ №1:

Соотношение между билетами и бронированиями много к одному. Было бы разумнее иметь поле bookingid в таблице билетов, а не поле TicketID в таблице бронирования:

Таблица билетов:

TicketID, ticketName, BookingID

Таблица бронирования:

BookingID, bookingReference

 SELECT * FROM Ticket WHERE bookingid = foo
SELECT * FROM Ticket AS T INNER JOIN Booking AS B on T.bookingid = B.bookingid
  

и т. д

Комментарии:

1. Действительно, теперь отношение обратное.

2. Но тогда, когда создается несколько бронирований с одной и той же ссылкой на бронирование, будет много идентификаторов бронирования. Тогда это сбивает с толку.

3. Хорошо, я вроде как разобрался, у меня будут все билеты, подключенные к одному конкретному идентификатору бронирования, я протестирую это в своем приложении и свяжусь с ним, если возникнут какие-либо проблемы