我目前正在为未来的Web项目规划基础设施.我想按照Joel的方式,每个客户端有一个数据库,现在想想哪个数据库引擎对我有好处.最好的当然是SQL Server,但我现在买不起一个完整的版本,我认为SQL Server Express不是加载服务的好选择.现在我正在考虑使用PostgreSQL.鉴于我的开发环境将是带有NHibernate或LINQ to SQL的ASP.NET 3.5,如果我使用PostgreSQL而不是SQL Server,我会遇到多少麻烦?
谢谢!
NHibernate与PostgreSQL一起工作正常(无论数据库是在Windows上还是在类UNIX操作系统上),并且.NET使用Npgsql数据库提供程序可以很好地使用它.
你得到的唯一"麻烦"当然是PostgreSQL不做T-SQL.事实上,它的PL/pgSQL存储过程语言比MS SQL Server的T-SQL更接近Oracle的PL/SQL.所以你必须重新编码你的存储过程,如果你做ADO.NET,会有一些需要注意的问题.如果你使用NHibernate,你可能不必担心这一点.虽然没有LINQ to SQL,但对你来说运气不错.
PostgreSQL是可扩展的,现在可以正常使用Windows(早期版本不正式支持Windows),pgAdmin是一个很好的管理工具,你可以用SQL Server的GUI工具完成大部分工作.它在很短的时间内.