slo_nik
@slo_nik

Как связать таблицы mysql?

Добрый вечер.
Есть задача переписать движок сайта. Начал с приведения БД в порядок.
Но вот в чём проблема (самостоятельно додумать не в состоянии).
Есть три таблицы:
1) Туры
2) Туристы
3) Инструкторы
В этих таблицах несвязанные между собой данные, поэтому, id(PK) в этих таблицах повторяются.
Для каждой из записей в этих таблицах можно прикреплять изображения, изображений может быть много.
В старом варианте, для каждой таблицы есть дочерняя, специально для изображений. Таблицы для изображений совершенно одинаковые, количество полей, названия полей, типы данных, размеры данных и т.д. и т.п. Совершенно одинаковые три таблицы, только названия разные у них.
Поэтому я подумал, что это слишком, три одинаковые таблицы и решил все изображения(пути к файлам) хранить в одной таблице.
Вообще-то проблем с реализацией особо не возникает. Можно через внешний ключ, можно связующую таблицу. Но на этом этапе зашёл в тупик.
Если я возьму первую таблицу, "туры", и все изображения для этих записей перенесу в новую таблицу, то проблем нет.
Но если переносить изображения для "туристы" - возникает проблема. Для того, чтобы связать по внешнему ключу надо в таблице изображений завести колонку "parend_id", но у "туров" и "туристов" есть одинаковые id(PK) и поэтому не получается слить изображения в одну таблицу.
Думал и про связующую таблицу, но и там нужна колонка "parent_id" и опять совпадения.

Как можно решить данную проблему? Подскажите, пожалуйста, кто уже сталкивался с подобным.

P.S. Из таблицы "Туры" идут связи через внешний ключ на другие таблицы, не только на изображения.

P.S.S Или сделать в таблице изображений три поля для связующих id - tour_id, instructor_id and tourist_id?
Но не слишком ли это будет?
  • Вопрос задан
  • 664 просмотра
Решения вопроса 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Общая таблица фотографий и три таблицы связи с турами, туристами и инструкторами.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Укажите тип то есть у вас туры туристы и тд... то есть перент id у вас повторяеться у туристов и туров, но тип у них разный и делайти выборку не по id а по id и type
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы