@flexpc

Как правильно сделать таблицу в бд?

здравствуйте. У меня есть статьи на моем сайте, и их необходимо хранить в бд. Просто хранить текст статьи не получиться, так как там есть картинки. Тогда можно хранить HTML верстку, но все же куда деть картинки? Не хранить же их прямо в БД?
  • Вопрос задан
  • 104 просмотра
Пригласить эксперта
Ответы на вопрос 3
rozhnev
@rozhnev
Fullstack programmer, DBA, медленно, дорого
HTML хранится в базе. В HTML ссылки на картинки. Сами картинки хранятся на сервере в месте соответствующем ссылке на файл
Ответ написан
Комментировать
AlexNest
@AlexNest
Работаю с Python/Django
Намекну.
Тогда можно хранить HTML верстку, но все же куда деть картинки?

В HTML можно вставлять ссылки на изображения, но не сами изображения. HTML - просто текстовая разметка.
Ответ написан
@rPman
Хранить и использовать картинки в файлах просто по техническим причинам удобнее - быстрее, где то проще (особенно если у тебя веб сервер - который файлы на диске легко отдает статикой наиболее эффективным способом, есть оговорки про ограничение прав доступа но легко решаемые) и очень эффективно по хранению. База данных должна хранить метаинформацию, включая имена, а файлы пусть хранятся на диске с техническими именами (например идентификаторы pk из базы), с оговоркой про количество файлов в каталоге (больше 10к не рекомендую, лучше делить по подкаталогам).

Хранить в базе очень тяжело - размер базы данных растет очень быстро, обслуживать такую базу (резервное копирование и восстановление) тяжелее, да и работа с блобами заметно медленее чистых файлов (эффективный многопользовательский код отдачи в веб таких файлов очень сложный), единственный бонус - встроенные транзакции. но если все же хранить - то только блобами, никаких сериализаций и упаковок, которые и так замедляют и увеличивают размер базы.

Не советую. Но если файлов мало, требований высоких скоростей и нагрузок не ожидается, база будет расти не заметно, то хранение в базе файлов вполне неплохой юзкейс, на старте кодить это где то проще.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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