MySQL: ссылка на различные идентификаторы таблиц в одной таблице

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

В общем я мог бы сделать что-то вроде

appointmentID | appointmentDate | appointmentDuration | flightID | hotelID | stadiumID

и заполните ненужные значения NULL. Но я думаю, что это не очень хорошая идея.

Также я мог бы хранить их таким образом:

appointmentID | appointmentDate | appointmentDuration | appointmentType | appointmentTypeID

и заполняйте назначениеСтрока строками таблицы (Отели, Авиабилеты,...) и назначение TypeID с идентификатором назначенияТип. Но этот путь не чувствует себя хорошо.

Итак, мой вопрос: что будет лучшим способом сохранить эти значения в базе данных?

РЕДАКТИРОВАТЬ: Я знаю, что цель состоит в нормализации таблицы. И вообще, я знаю, какие данные я должен поместить в отдельные таблицы. Мой вопрос, как я могу сделать это в этом конкретном случае

1 ответ

Первый способ кажется лучшим вариантом.

У меня было бы следующее, но я бы добавил справочную таблицу

Appointment_table app_id app_f_id (Ссылка на идентификатор таблицы полета) app_h_id (Ссылка на идентификатор таблицы отеля) app_s_id (Ссылка на идентификатор таблицы стадиона) app_ref_table (Это будет содержать уникальную сгенерированную ссылку, потому что использование идентификатора станет проблематичным в будущем как идентификатор может простираться на миллионы...)

Flight_table f_id f_carrier f_date_booking f_date_confirmed

Hotel_table h_id h_descripion h_ghest

Stadium_table s_id s_description

Каждый год справочная таблица будет начинаться с последовательности 1 или того, который вы когда-либо предпочитаете. На мой взгляд, это аккуратный подход к структуре таблицы. Reference_table r_id r_year r_sequence r_app_id (последний идентификатор, для которого был создан ссылочный номер)

Другие вопросы по тегам