English 中文(简体)
开始一个支持数据库的新应用程序
原标题:
  • 时间:2009-02-03 18:27:26
  •  标签:

我正在开始一个新的C#项目,使用数据库,但我希望它全都被版本控制。我正考虑使用SQL Server数据库(如果我制作一个mdf文件,我能在没有安装SQL Server的计算机上使用它吗?)以及LINQ to SQL。

你通常如何开始这样的项目?你会创建一个 .sql 文件来创建数据库,然后创建 linq 模型吗?还有更好的方式吗?

最佳回答

这真的取决于你的偏好。你会得到答案,告诉你最好先设计你的对象模型(程序员会告诉你这些),然后还有一些人会告诉你先设计你的数据模型(数据库管理员)。

最终,正确的方法是你感到最舒适的方式。如果你觉得你将在代码中处理大部分数据操作,那么从对象模型开始可能是一个不错的选择。如果你觉得你会在数据中执行大部分操作,那么从数据库开始可能更好。

关于源代码控制,如果您想对所有内容进行版本控制,则需要生成一个 SQL 文件,其中包含创建数据库所需的所有内容。然后,每次更改或更新数据库架构或数据时,都应将该文件放入源代码控制中。我还建议使用包括文件的日期和时间的命名约定,以便在从头开始工作或在此之后的任何时间点查找应用文件的顺序时更容易。

当然了,你也需要对你的源代码进行版本控制,但这应该是显而易见的。

问题回答

如果您使用 .mdf 文件,您的用户将需要安装某个版本的 SQL Server。对于小型应用程序,您可以使用(免费的)SQL Server Express。

至于如何设计你的解决方案,这可能很困难,但你想把所有内容都放入源代码管理中的愿望是正确的。很多时候,开发人员不会将他们的数据库代码放入源代码管理中,这始终会导致麻烦。

问题是在Visual Studio中进行版本控制数据库可能会很棘手。只是把更改脚本放在一个文件夹中是很困难的,因为您必须记住在设计数据库时创建它们。像字段重命名等简单的事情可能很繁琐,因为按正确的顺序进行操作很重要。您可以考虑使用迁移框架,如RikMigrations。对于更大的应用程序,Visual Studio数据库项目(需要新安装,但最近在Team Developer Sku中提供)将帮助您版本控制数据库更改脚本等。

第一个问题:是的,您始终需要在计算机上安装 SQL Server 才能访问本地数据库,否则您需要设置服务器以接受外部连接。

第二点:不应该将数据库MDF文件存储在源代码控制下。正如你所说,应该将SQL脚本存储在源代码控制下。

第三点:我建议使用对象关系映射系统(例如FluentNHibernate和NHibernate),这样您就不需要在sql中管理任何数据库,除了实际的表创建/修改语句和索引。





相关问题
热门标签