@Alk90
php, mysql, jquery, css, html, api

Нужно ли разделять записи с изображениями?

Всем привет! На сайте есть посты, новости, комментарии и т.д. Ко всем этим сущностям можно прикрепить изображение (одно или несколько).
В БД изображения хранятся по принципу:
  • id - уникальный ID изображения
  • name - имя изображения на сервере
  • mode - модуль (posts, news, comments и т.д.)
  • mode_id - ID модуля


Соответственно, получить изображения для новости с ID == 555 нужно с помощью запроса:
SELECT * FROM `images` WHERE `mode` = 'news' AND `mode_id` = 555


Недостатками данного способа хранения вижу:
бОльший объем таблицы за счет того, что там хранятся изображения со всех модулей, а значит со временем, например при создании записи с очередным изображением, пересохранение индексов будет происходить медленней.
Поиск по такой таблице тоже будет медленней.

Стоит ли разделить хранение изображений по разным таблицам? Например posts_images, news_images, comments_images. Либо мои минусы не такие уж и минусы и я чего-то не вижу?
  • Вопрос задан
  • 109 просмотров
Решения вопроса 1
DmitriyEntelis
@DmitriyEntelis
Думаю за деньги
бОльший объем таблицы за счет того, что там хранятся изображения со всех модулей, а значит со временем, например при создании записи с очередным изображением, пересохранение индексов будет происходить медленней.
Реально это станет хоть как-то заметно, когда размер таблицы превысит десяток миллионов, - и даже при этом затраты например на ресайз изображений все равно будут больше чем вставка в базу.

Разделять на разные таблицы имеет смысл если с точки зрения бизнес-логики картинки постов и новостей и комментариев какие-то совсем разные - у них разные размеры, разная логика хранения итд
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы