День добрый!
Есть две таблицы: page, object. Возможно, их будет больше.
Для каждого page и object может быть несколько изображений. Все изображения хочется хранить в одной таблице. Но не могу сообразить, какую лучше структуру этой таблице задать.
На данный момент рассматриваю два варианта:
1.
CREATE TABLE `image` (
`id` int(11) NOT NULL,
`itemId` int(11) NOT NULL,
`itemTbl` varchar(255) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
где Id - PK, ItemId - id из таблиц page/object, Itemtbl - название таблицы
В этом случае связь на уровне БД не сделать.
2.
CREATE TABLE `image` (
`id` int(11) NOT NULL,
`pageId` int(11) NULL,
`objectTbl` varchar(255) NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
В этом варианте для каждой таблицы заводим отдельное поле, делаем связь на уровне БД. Мне этот вариант нравится больше, но смущает необходимость добавлять поля при появлении новой таблицы.
Что посоветуете? Какой из этих вариантов лучше использовать? Или же есть какие-то другие способы?
P.S. Сам сайт делается на yii2.