#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. Хорошо, я вроде как разобрался, у меня будут все билеты, подключенные к одному конкретному идентификатору бронирования, я протестирую это в своем приложении и свяжусь с ним, если возникнут какие-либо проблемы