我正在开始一个POS(销售点)项目。目标系统将用C#.NET 2 WinForms编写,并作为主数据库服务器我们将使用MS-SQL Server。由于我们在一家商店的链中有很多POS设备,我很乐意在每台POS设备上安装后端本地数据库系统。
场景如下:当主服务器出现故障时!! POS应用程序应继续与本地数据库“脱机”工作,直到再次连接到主服务器。
现在我处于两难境地,哪个本地数据库对我来说最容易接受。以下是帮助我指出正确方向的一些注意事项:
这是我到目前为止所研究的内容:
我知道在这个SO中有很多主观数据,但至少可以有人推荐一些其他精简数据库系统,或者在我选择数据库之前我最关注的事情。
答案 0 :(得分:5)
它专为嵌入式设备(即Windows Mobile)设计,但也可以在PC上运行。它是2MB,运行在进程中,单个数据库文件,可以有你喜欢的任何名称。
它意味着作为本地高性能数据库。您无法远程连接它,也不支持存储过程或用户定义的函数。
但回答你的实际问题:如何选择?
选择具有管理工具的内容,并在增长时使用简单,兼容的升级路径。
答案 1 :(得分:3)
我做了很多相同的事情:中央服务器可能正在运行MS SQL服务器和分布式系统,尽管它们正在运行Linux。我们选择以XML格式进行数据传输,并在分布式系统上使用sqlite。
这是早期的事情,但到目前为止似乎进展顺利。
sqlite有.net绑定。
我们选择sqlite的原因是:
答案 2 :(得分:2)
我建议使用Sql Compact Edition,因为它轻巧而且免费,所以它解决了你的三个问题中的两个。我不知道它是否适用于Mono .....
我过去曾经使用它,实际上我对性能印象非常深刻。缺点是缺少存储过程......
答案 3 :(得分:2)
我使用System.Data.Sqlite,这是一个来自http://sqlite.phxsoftware.com/的Sqlite的开源ADO.Net包装器。您可以在Visual Studio中使用它来构建数据库。它支持Sql Server的字段类型的子集,并且应该快速在两个数据库之间编写接口类。通过在项目中包含单个DLL和单个文件数据库,您可以获得简单部署的好处。它也包括加密。