Внимание к отношениям сущностей
Если вы не делитесь изображениями между продуктами (никогда не используйте одно изображение для более чем 1 продукта), тогда ваши отношения действительно одно-ко-многим инет необходимости в products_images
соединительной таблице.Это упростит вашу модель до:
- Продукты (id_product, ...)
- Изображения (id_image, ..., id_product)
Иid_product
в таблице Images
внешний ключ будет указывать на Products(id_product)
.Таким образом, если вы хотите отсоединить все изображения от продукта, вы просто запустите оператор обновления:
UPDATE images SET id_product = NULL WHERE id_product = ?
Сортировка
Поскольку вам нужночтобы сохранить порядок, в котором изображения хранятся в базе данных, в зависимости от того, какие столбцы у вас в таблице Images
, вы можете использовать, например, id_image
, если она была объявлена как SERIAL
(целочисленное значение с автоинкрементом).Как правило, в PostgreSQL (где нет кластерных индексов) помните, что если вам нужно отсортировать вывод, вам нужно сделать это самостоятельно (пример: добавить ORDER BY id_image
) в конце.