Изображения в базе данных или в папке проекта в качестве ресурсов - PullRequest
5 голосов
/ 21 февраля 2012

Я создаю приложение, в котором у меня будет база данных, которую пользователи не смогут редактировать. У него просто есть данные, и он показывает пользователю. Я обнаружил, что мне не нужно использовать localalstorage, я просто могу добавить базу данных в проект, и она доступна только для чтения. Я так и сделал, и все в порядке. Теперь я хочу добавить изображения в свое приложение, и я не уверен, что лучше. Я могу каждое изображение добавить в папку, в хранилище базы данных путь к изображению, и это очень легко, и это можно сделать сейчас. Или я обнаружил, что могу хранить изображение в базе данных как изображение (byte []). Что лучше? Будут ли изображения в базе данных меньше? Будет ли загрузка изображений быстрее? Если изображения в базе данных - лучшее решение, могу ли я легко добавить изображения в мою существующую базу данных? Есть ли статья, чтобы сделать это в winforms? Спасибо

Edit: Я рад, что на мой вопрос так много ответов и мнений. Я хочу объяснить больше моих потребностей. В моем приложении должно быть около 150 картинок, а картинка должна быть размером 150px и 100px. Я хочу, чтобы приложение работало без подключения к интернету. Это может подключиться для обновления, но это все. Еще раз спасибо за все мнения :)

Ответы [ 6 ]

3 голосов
/ 21 февраля 2012

Для нашего приложения мы обнаружили, что гибридный подход работает лучше всего. Мы настроили нашу среду SQL на поддержку FILESTREAM , а затем импортировали все наши изображения. Это дает нам возможность хранить изображения в формате sql, сохраняя при этом фактические изображения на диске. Это быстрое решение, которое также может работать на вас.

1 голос
/ 24 февраля 2012

Есть много «если», «но» и «майбес» о том, куда вы кладете свои изображения, и я не думаю, что есть правильный или неправильный путь.

Стоит упомянуть одну вещь: если приложение критически важно для бизнеса с высокой доступностью, я буду хранить его в базе данных просто потому, что оно может быть скопировано с остальными данными.Базы данных могут быть зеркально отражены и т. Д., Поэтому использование всех изображений в качестве «данных» может быть полезным.Кроме того, если что-то становится большим и используется веб-ферма и балансировщики нагрузки и т. Д., Это помогает, когда изображения живут в одном месте.

Для меня, я бы пошел с базой данных.Но все зависит от масштаба вашего приложения.

1 голос
/ 21 февраля 2012

Ничего плохого в ответах уже здесь, но это действительно зависит от того, что вы пытаетесь выполнить, и от того, как он настроен в настоящее время.

Лучше всего было бы использовать сеть доставки контента для статических изображений, чтобы облегчитьзагрузка вашего веб-сервера.

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

Если вы визуализируете изображения, я определенно сохраню изображения в базе данных, чтобы получить доступ кизображения с любого количества веб-серверов.

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

1 голос
/ 21 февраля 2012

Я лично храню все изображения в изолированном хранилище, а в базе данных - путь к изображению.

Я бы сохранил все изображения в виде байта [] в изолированном хранилище

0 голосов
/ 21 февраля 2012

Лучший вариант - хранить изображения в веб-папке. Если вы сохраните их в БД, вы потратите время на их извлечение из БД, поскольку это займет больше времени

0 голосов
/ 21 февраля 2012

веб-папка. также подумайте об удаленной загрузке их с облачного сервера, такого как Amazon S3, чтобы освободить доступ к вашему собственному серверу

...