Структура базы данных изображений товаров - PullRequest
0 голосов
/ 02 января 2019

На данный момент у меня 3 таблицы: products, images, products_images. Итак, в основном я храню изображения товара в таблице "products_images". Когда продукт обновляется, я удаляю все строки из таблицы "products_images", связанные с этим продуктом, и добавляю новую. Кроме того, мне нужно сохранить заказ, теперь порядок, как они хранятся в базе данных.

Это правильный подход? Или, может быть, есть лучшая структура базы данных для хранения изображений товара?

1 Ответ

0 голосов
/ 02 января 2019

Внимание к отношениям сущностей

Если вы не делитесь изображениями между продуктами (никогда не используйте одно изображение для более чем 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) в конце.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...