Стоит ли мне присоединять файл MDF к SQL Express или сценарий реального развертывания к SQL Server? - PullRequest
5 голосов
/ 20 июля 2011

Я строю систему публикации, похожую на блог, на ASP.NET 4.0 (с EF 4.0), которую я хочу очень легко развернуть / скопировать в первое место. Я нахожусь в точке принятия решения о том, нужно ли заставить систему создать базу данных на SQL Server и использовать ее (традиционно), или иметь файл App_Data MDF на сайте и просто присоединить его к нему с помощью SQL Express. Я знаю ограничения памяти / размера выпусков Express, и я не буду нарушать ограничения, поскольку это не бизнес-приложение, критически важное для производительности, или любое другое серьезное дело. Просто простая CMS с блогами / записями / фотографиями (реальные фотографии НЕ сохраняются в базе данных, только их пути сохраняются в MDF) и все. Я не вижу проблем с использованием MDF, но я тоже не эксперт по этой теме, поскольку я никогда не работал / не создавал веб-сайт с использованием файла MDF. Я всегда развертывался на SQL Server, но я не хочу иметь дело с пользователями / ролями / разрешениями и последним, что я хочу, чтобы у пользователя были проблемы с установкой из-за настроек базы данных.

С чем мне идти? Какие-нибудь проблемы, с которыми я столкнулся бы с MDF? Рекомендации?

1 Ответ

2 голосов
/ 20 июля 2011

ЕСЛИ вы используете SQL Server Express - сервер - я бы всегда выбрал "настоящий" подход к базе данных: присоедините вашу базу данных к серверу, получите к ней доступ через ееимя базы данных, разверните сценарии SQL для его обновления.

То, что «прикрепить БД из пути к файлу» мне всегда казалось недоделанным и довольно грязным ключом .....

Если вам не нужна такая сила - исследуйте SQL Server Compact Edition , которая представляет собой однофайловую незавершенную базу данных.Он имеет свои ограничения - нет хранимых процедур, не поддерживает определенные типы данных, такие как VARCHAR(MAX) или XML, - но для более простых сценариев он идеален и прост в использовании - просто разверните его в своем приложении.Это однопользовательский, например, вы не разделяете данные между несколькими клиентами, это локальное хранилище для каждого пользователя / приложения в отдельности

...