Запуск нового приложения с поддержкой базы данных - PullRequest
3 голосов
/ 03 февраля 2009

Я запускаю новый проект C #, который использует базу данных, но я хочу, чтобы все это контролировалось версией. Я думаю о базе данных сервера SQL (если я сделаю файл mdf, смогу ли я использовать его на компьютере без установленного сервера SQL?) И LINQ to SQL.

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

Ответы [ 3 ]

4 голосов
/ 03 февраля 2009

Это действительно зависит от того, что вы предпочитаете. Вы получите ответы, которые скажут вам, что лучше сначала спроектировать вашу объектную модель (программисты скажут вам об этом), а затем есть те, которые скажут вам сначала спроектировать вашу модель данных (администраторы базы данных).

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

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

И, конечно, вам также необходимо создать версию исходного кода, но это само собой разумеется.

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

Если вы используете .mdf, ваши пользователи должны будут иметь какую-то версию SQL Server. Для небольших приложений вы можете использовать (бесплатный) SQL Server Express.

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

Проблема в том, что управление версиями базы данных может быть сложным в Visual Studio. Просто поместить сценарии изменений в папку сложно, потому что вы должны помнить, чтобы создавать их при проектировании базы данных. Простые вещи, такие как переименование полей и т. Д., Могут быть утомительными, поскольку важно выполнять их в правильном порядке. Возможно, вы захотите рассмотреть структуру миграции, такую ​​как RikMigrations, как один из подходов. Для более крупных приложений проект базы данных Visual Studio (требует новой установки, но недавно сделанный доступным в Sku «Team Developer») поможет вам в сценариях изменения базы данных контроля версий и т. Д.

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

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

Второе: нет, вы не должны хранить файл MDF базы данных под контролем исходного кода. Как вы сказали, вместо этого храните сценарии sql в системе контроля версий.

В-третьих: я рекомендую взглянуть на систему сопоставления объектных отношений, такую ​​как FluentNHibernate и NHibernate, чтобы вам не нужно было управлять какой-либо вашей базой данных в sql, кроме фактической таблицы создания / изменения операторов и индексов.

...