Пользовательские изображения - база данных и хранилище файловой системы - PullRequest
3 голосов
/ 25 февраля 2009

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

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

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

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

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

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

Ответы [ 6 ]

14 голосов
/ 25 февраля 2009

Ваш вопрос уже был дан ответ на StackOverflow:

Хранить изображения в виде файлов или в базе данных для веб-приложения

Включая много других повторяющихся вопросов!

2 голосов
/ 25 февраля 2009

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

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

0 голосов
/ 18 февраля 2016

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

0 голосов
/ 22 декабря 2009

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

0 голосов
/ 23 мая 2009

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

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

0 голосов
/ 25 февраля 2009

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

...