2009-12-18 3 views
3

У меня возникли проблемы с выбором, где хранить файлы, загруженные пользователем в моем приложении asp.net mvc.MVC и файлы, загруженные пользователем, где хранить файлы?

Я использую asp classic около 10 лет и всегда храню файлы на диске на сайте и сохраняю имена файлов и папок в базе данных.

Как вы относитесь к этой проблеме?

Имея их в базе данных и может получить проблемы с производительностью? или оставить его так, как я всегда это делал, и может возникнуть проблема с «sync» файловой системой и db?

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

Я использую SQL Server 2005 атм, и я где-то читал, что SQL Server 2008 имеет какие-то DataColumn теперь, просто хранит «указатель» (например, текст-тип данных) в файл на диске, это путь?

По какой-то причине база данных по какой-то причине называется базой данных, поэтому не уверен, зачем изобретать колесо снова? :)

Любые указатели или идеи будут оценены, я думаю, я просто интересно, о проблемах, я мог бы столкнуться, если я пойду с БД-подход

/M

ответ

2

Вы можете использовать специальный App_Data для размещения загруженных файлов и сохранения пути в базе данных. Если вы перейдете с SQL Server 2008, вы можете взглянуть на тип FILESTREAM.

1

Я не уверен, что ваше веб-приложение сбалансировано по нагрузке или нет, для систем управления файлами, которые я построил в прошлом, я всегда сохранял свои файлы на SAN или общем сетевом диске, чтобы они были доступны для всех веб-серверов/серверов приложений. Кроме того, вместо того, чтобы хранить файлы как есть, я всегда изменяю имя и тип файла, прежде чем я сохраню их в файловой системе (обычно я использую GUID в качестве имени файла и случайного расширения файла). Наконец, я бы сохранил исходную информацию о файлах в базе данных, файлы можно перемещать или копировать логически, а не физически.

+0

Здравствуйте, не могли бы вы немного уточнить последнее предложение? Благодаря:) – Bartosz

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