Задать вопрос

Как правильно хранить изображения в SQL и как правильно работать с ними в WPF проекте?

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

Перейдем к сути. Вот как выглядит часть программы на данный момент:
654a8fef3a3af879110407.png

Это список модов. У модов есть описание, тема, версии и т.д., но это не важно. Важно то, что у модов есть картинки. В правой формочке, где написано "Major Experimantals", очень много места и оно как раз таки под картинки. Вот как они хранятся в базе:
654a915c23f72546218912.png

Есть колонка "MainImage", "FirstAdditionalImage", "SecondAdditionalImage" и тут хранятся картинки (тут не все заполнено). Я заполняю их путем прописывания пути, а в коде делаю так:
654a9228289cf106726051.png

И вот я не совсем уверен, что это хороший способ хранить изображение в базе. В будущем я хотел бы попробовать сделать так, чтобы база была на каком-то сервере, чтобы многие могли пользоваться приложением, но не думаю, что это будет нормально работать, да и вообще не красиво( Заранее спасибо.
  • Вопрос задан
  • 340 просмотров
Подписаться 3 Простой 1 комментарий
Ответ пользователя Akina К ответам на вопрос (2)
@Akina
Сетевой и системный админ, SQL-программист.
Ну вообще-то хранение изображений в полях базы данных считается антипаттерном... а по сути - это вообще худшее из возможных решений.

Наилучшее решение - файлы хранятся в FileTables либо FILESTREAM, а в таблице лежат ссылки на них. Что приятно - при этом не надо распыляться с безопасностью, за ней следит SQL Server.

Сравнение параметров для хранения больших двоичных...

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

PS. Пройдя по ссылке - обязательно прочитать и оригинальный ихнеязычный текст. Как, впрочем, и для любого другого машиннопереведённого текста.
Ответ написан