Как сделать связь ManyToOne вьюхи с таблицей?

Есть таблица с фотографиями автомобилей images, в ней есть колонки "производитель" (марка изображенного автомобиля) и "источник" (источник фотографии).

Разумеется, т.к. будет много фото с одинаковым производителем и из одинакового источника выделим их в отдельные таблицы и свяжем с images как ManyToOne:

2-я таблица "Производители"

3-я таблица "Источники"

Но, теперь мы столкнемся с проблемой, источником у фотографии часто будет сайт производителя автомобиля. т.е. 2-я и 3-я таблицы, будут хранить одно и тоже. Например "производитель" - Tpyota, "источник фото" - Toyota.

Пользоваться только таблицей "Производитель" нельзя, т.к. источником у фото может быть не только производитель, но и фотограф или газета.

Решение - делаем view из таблиц производители + фотографы + газеты. и эта view будет нашим "источником" для фото.

Но как сделать связь один ко многим из view? По id? Дк, оно генерится черт знает как и если я вдруг во view добавлю таблицу "иллюстратор" и по сути пересоздам view, то id могут пересчитаться и связь колонки "источник" с id в таблицк view_источники испортится. Привязываться не к Id вьюхи, а к id производителя/фотографа/иллюстратора? Дк, во всех трех будет присутствовать id = 1 и мы будем иметь 3 id со значением 1. К такому не привяжешься.

Как сделать стабильную связь ManyToOne вьюхи с таблицей. Вообще, у меня правильный ход мыслей или решение проблемы с повторением данных в таблицах "производители" и "источники" через view - это изврат?


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