Если я правильно понимаю ваш вопрос, вам следует создать отдельную таблицу Сущность , которая будет базовым типом для всех ваших фильмов, картинок и т. Д. И отдельную таблицу ListsItems , котораябудет содержать следующие столбцы: (list_id
, entity_id
) и таблица UsersLists из (user_id
, list_id
).
UsersLists будет содержатьотображение пользователей в списки (каждый пользователь может иметь много списков), ListsItems будет содержать списки для сопоставления объектов (каждый список может иметь много объектов), а Entity будет содержать тип объекта (movie,изображение, что угодно) и конкретный идентификатор объекта, который будет указывать на его собственную таблицу ( Фильм , Изображение и т. д.).
Aufziehvogel спросил васо количестве типов, потому что это важно для разрешения поля типа сущности в проекте.Если у вас есть конечное заранее определенное количество типов, вы можете сделать столбец entity_type
перечислением, но если пользователь должен иметь возможность создавать свои собственные типы, это более сложная проблема, и таблица SpecifiedEntity должна заменить определенныетаблицы ( Фильмы , Изображения и т. д.).
Вы можете прочитать кое-что о нормализации реляционных баз данных, чтобы понять эту проблему во всех существующих деталях.