2009-02-25 2 views
3

Я пишу функцию загрузки в .NET для презентационных изображений в профилях пользователей. Я выбираю между двумя разными способами, и хотел бы спросить совета и мнения о плюсах и минусах.Пользовательские изображения - база данных и хранилище файловой системы

  1. хранения изображений непосредственно в файловой системе

  2. хранения изображений в базе данных

До сих пор я был в основном Pro первый вариант - именования изображений после реализации имена пользователей, так как каждый пользователь может иметь только один образ презентации. Затем я делаю проверку в указанном пути, если у пользователя есть изображение, если не отображается изображение «без изображения» по умолчанию.

Еще одна вещь, которая мне нравится в этом, заключается в том, что она экономит место в БД - БД будет довольно тяжелой без дополнительной бинарной нагрузки.

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

+0

Возможный дубликат [Сохранить изображения как файлы или в базе данных для веб-приложения?] (Http://stackoverflow.com/questions/561447/store-pictures-as-files-or-in-the-database- for-a-web-app) – mauris

ответ

2

В общем, лучше хранить файлы в файловой системе. Файловые системы уже настроены для хранения файлов. Тем не менее, у этого есть свои недостатки, особенно с точки зрения управления, резервного копирования, восстановления, и это немного хрупкая связь между полем пути файла varchar в базе данных и файлом в файловой системе. Какую систему баз данных вы используете? Я думаю, что если вы используете SQL Server 2008, новый тип FileStream дает очень хороший способ хранения файлов в этой базе данных.

Редактировать: Примечание. Я действительно говорю об общем хранении файлов в базе данных. Существует еще одна сложность в попытке сохранить изображения, которые вы собираетесь отображать на HTML-страницах в базе данных.

0

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

+0

Да, как-то я неправильно читаю об изображениях. Я оставляю сообщение, поскольку большинство файлов в диску db vs для файловой системы на SO обычно не обсуждают FileStream. Я думаю, что для изображений, которые вы хотите отобразить, хранить их как файлы. – BobbyShaftoe

+0

Но почему это не практично для 3000+ файлов? Время поиска/доступа? –

+0

Да, время доступа к файлам взрывается выше 1000 в папке. Вы могли бы сказать, что не возражаете. Но действительно, ваш администратор будет заботиться о быстрой резервной копии/восстановлении. Эффективным решением является создание папок – wiwulo

-1

Как насчет хранения документов, файлов pdf, xls, jpg? Какой из них рекомендуется?

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

0

redundency данных и несогласованность трудности в доступе данных данных изоляции ограничений целостности атомарность проблема параллельного доступа и аномалий (Updation проблема безопасности

0

При фиксированном (не изменяющаяся) содержания, таких как фотографии, видео, и т. д. файловые системы не смогут масштабироваться, особенно если у вас много файлов в каталоге, и производительность действительно пострадает. Лучшим вариантом является использование технологии хранения объектов, которая сохраняет изображение как объект и помещает связанные метаданные в базу данных автоматически.

 Смежные вопросы

  • Нет связанных вопросов^_^