如何选择轻型版数据库系统

时间:2010-06-07 15:23:32

标签: c# sql-server database

我正在开始一个POS(销售点)项目。目标系统将用C#.NET 2 WinForms编写,并作为主数据库服务器我们将使用MS-SQL Server。由于我们在一家商店的链中有很多POS设备,我很乐意在每台POS设备上安装后端本地数据库系统。

场景如下:当主服务器出现故障时!! POS应用程序应继续与本地数据库“脱​​机”工作,直到再次连接到主服务器。

现在我处于两难境地,哪个本地数据库对我来说最容易接受。以下是帮助我指出正确方向的一些注意事项:

  1. 成为光明“我的POS设备艺术通常陈旧且受到表演”
  2. 自由“我有很多设备,除了主要的SQL服务器之外我不会有额外的费用”
  3. 有一天我很想在Mono和Linux OS上尝试所有端口。
  4. 这是我到目前为止所研究的内容:

    1. 简单XML“轻但我害怕性能,我的主要项目平均为10K记录”
    2. SQL-Express“我担心我的POS设备使用SQLExpress的硬件很差,而且很难在每台设备上安装并配置”
    3. 鲜为人知的Advantage Database Server可免费分发离线ADT系统。
    4. 带有扩展库的DBF,“尊重好的旧DBF,但那个时代已经落后于我的剪辑器和DBF”
    5. MS Access
    6. Sqlite“现在大部分都喜欢,但我担心如何与MS SQL配对他们是否有相同的数据类型”。
    7. 我知道在这个SO中有很多主观数据,但至少可以有人推荐一些其他精简数据库系统,或者在我选择数据库之前我最关注的事情。

4 个答案:

答案 0 :(得分:5)

SQL Server Compact

它专为嵌入式设备(即Windows Mobile)设计,但也可以在PC上运行。它是2MB,运行在进程中,单个数据库文件,可以有你喜欢的任何名称。

它意味着作为本地高性能数据库。您无法远程连接它,也不支持存储过程或用户定义的函数。


但回答你的实际问题:如何选择?

选择具有管理工具的内容,并在增长时使用简单,兼容的升级路径。

答案 1 :(得分:3)

我做了很多相同的事情:中央服务器可能正在运行MS SQL服务器和分布式系统,尽管它们正在运行Linux。我们选择以XML格式进行数据传输,并在分布式系统上使用sqlite。

这是早期的事情,但到目前为止似乎进展顺利。

sqlite有.net绑定。

我们选择sqlite的原因是:

  1. 因为它不需要任何数据库管理,这在远程系统上会很棘手。
  2. 它似乎使用得非常广泛:例如,firefox使用sqlite进行本地存储。
  3. 我们可以在Windows和Linux上使用它。
  4. 如果出现意外断电,应该擅长不丢失数据。

答案 2 :(得分:2)

我建议使用Sql Compact Edition,因为它轻巧而且免费,所以它解决了你的三个问题中的两个。我不知道它是否适用于Mono .....

我过去曾经使用它,实际上我对性能印象非常深刻。缺点是缺少存储过程......

答案 3 :(得分:2)

我使用System.Data.Sqlite,这是一个来自http://sqlite.phxsoftware.com/的Sqlite的开源ADO.Net包装器。您可以在Visual Studio中使用它来构建数据库。它支持Sql Server的字段类型的子集,并且应该快速在两个数据库之间编写接口类。通过在项目中包含单个DLL和单个文件数据库,您可以获得简单部署的好处。它也包括加密。