当前的应用程序是一种基于MS Access构建的CRM应用程序。该应用程序供内部使用。我的工作是将其迁移到ASP.NET基于Web的应用程序。现在老板要求将Access作为数据库并针对它开发ASP.NET代码。
我的问题是,在ASP.NET应用程序中使用Access作为数据库有什么缺点吗? (例如乐观并发问题?)我应该说服老板升级对MS-SQL的访问吗?
非常感谢!
答案 0 :(得分:4)
我们使用Access作为网站的后端取得了很好的成功。它很便宜,可以由技术熟练的程序员有效地使用,并且您可以将MDB存储在文档服务器上,以便备份。
大多数IT人员不喜欢Access,但从业务角度来看,Access非常有价值。
答案 1 :(得分:2)
MS Access在多用户环境中非常不稳定。根据定义,WEB应用程序是多用户的。
所以恕我直言,MS Access作为底层数据库是一个麻烦的呼吁。至少使用SQL Express(它是免费的)
答案 2 :(得分:2)
从Access升级到MS-SQL时,您将面临的问题是应用程序需要进行大量的成本投资。如果你的公司已经拥有基础设施(许可证,硬件......)那么你就不会有如此艰难的斗争来追求你的老板。
至于技术答案:
我要说你需要让老板知道访问数据库不适合并发使用,Web应用程序建议这是应用程序的预期目标。我的观点是Access是针对数据库信息的,SMALL用户组将仅用于小数据输入和查询。切勿使用Access来构建企业级解决方案。
答案 3 :(得分:2)
如果您计划将Microsoft Access数据库升级到SQL Server 2008,请使用SQL Server Migration Assistant(SSMA)而不是内置于MS的升迁向导
10+ tips for upsizing an Access database to SQL ServerAccess.
答案 4 :(得分:2)
你的老板可能喜欢用access / excel做临时的事情。如果将数据库移动到SQL Server Express,则可以使用Access及其链接表功能,让您的老板通过Access继续执行其临时需求,同时将数据保留在SQL Server Express中。如果您保持链接表的名称与旧的物理列表相同,那么他的所有报告和查询将继续有效。
答案 5 :(得分:2)
我是Access推广者,但不能在网站上使用,因为Jet / ACE不是线程安全的(虽然Michael Kaplan曾经说过如果你通过ADO / OLEDB访问它是线程安全的;我不太明白如何数据库抽象层可以冲掉它所调用的底层数据库引擎的特性,但如果MichKa说,那么99%可能是真的。
现在,例外情况是,如果您使用它来原型化将使用不同数据库的东西,或者它是只读的,或者是读写但是只会有非常少量的用户。
迈克尔卡普兰的网站trigeminal.com曾经使用Jet数据库作为后端(它可能仍然 - 我不知道MichKa曾经改变它),当他的主要网站是他报告得到100K打了一天。但它是一个只读站点,因此符合我的限制。有很多不同的选择,它们大多容易使用,我只是没有看到尝试使用Jet / ACE作为网站的后端。我自己从不这样做(所有我负责使用MySQL的网站)。
答案 6 :(得分:1)
简单地说,使用MSSQL。 Express版本是免费的,它将为您提供从Access迁移所需的一切。这些文章专门讨论了Access应用程序,但同样的问题会困扰你。
http://resources.zdnet.co.uk/articles/features/0,1000002000,39285074,00.htm