使用Delphi进行客户端/服务器应用程序(多用户)的最佳数据库选择?

时间:2010-09-20 17:43:21

标签: database delphi

我想用Delphi XE编写软件代码,它可以连接到服务器,用户应该能够读/写数据库。
所有记录都是字符串(启用unicode),也许少量可以是blob

我的需求是;

  • 启用了多个用户
  • 多个用户应该能够一次添加新记录
  • 能够存储大量数据
  • 用户可以编辑自己的记录
  • 启用Unicode
  • 尽可能低成本解决方案

立刻感谢...

7 个答案:

答案 0 :(得分:16)

我投票给Firebird。它满足您的所有需求,而且是免费的。

答案 1 :(得分:7)

我会选择postgres - 它也是免费的,速度非常快。

和Sandeep

答案 2 :(得分:3)

大部分需求都是由大多数现代数据库引擎处理的(并发管理在所有数据库中并不完全相同)。但是要选择最适合您的数据库,您应该提供更精确的信息:

  • “多个用户”。有多少并发连接? 10? 100? 1000? 10000? 100000?更?
  • “多个用户应该能够一次添加新记录”。每小时插入多少个?这是OLTP数据库还是DW数据库?
  • “能够存储大量数据”。多少桌子?多少行?有多少个字段?平均行大小是多少?你需要LOB支持吗?有多少指数?
  • “用户可以编辑自己的记录”。多常?多少?多久?有些数据库的锁定机制比其他数据库更好。
  • “启用Unicode”。哪个味道? UTF-8? UTF-16?
  • “所有记录都是字符串”。您需要的最大字符串长度是多少?希望它们是“自然的”字符串字段 - 在字符串字段中存储非自然字符串数据通常会降低性能。

答案 3 :(得分:1)

我相信你会得到其他人,但ElevateDB符合你的需求 它是DBISAM的后续产品,它没有Unicode支持。但ElevateDB确实如此。

答案 4 :(得分:1)

我建议你看看NexusDB。它也符合您的所有需求。 Bill Todd只有reviewed产品。

答案 5 :(得分:0)

“用户可以编辑自己的记录”这对您来说意味着什么?记录不可编辑的数据库,即只读数据库,并不常见。

您必须考虑软件的一般架构。您只是不选择像新车这样的数据库。我建议你不要专注于数据库选择,但要看看整个图片。

以下是一些建议:

  1. 分隔数据库存储,用户界面和软件逻辑。这被称为3层,如果你在2010年开始一个新项目,这绝对是一个好主意。它将为你节省大量的时间。我们在http://blog.synopse.info/category/Open-Source-Projects/SQLite3-Framework

  2. 中使用了这样的架构
  3. 使用未固定到一个数据库引擎的数据库连接。 Delphi附带DBX,并且有免费或不那么昂贵的替代品。请参阅http://edn.embarcadero.com/article/39500了解dbx和http://www.torry.net/pages.php?id=552了解替代方案

  4. 考虑未来:尝试在一段时间后猜测应用程序的功能,并尝试在今天的架构选择中实现它们。

  5. 在所有情况下,您都在寻求建议和反馈。您在编码之前花费的时间将在将来的维护期间节省您的时间。

    例如,如果您的一个请求是“所有记录将是字符串”,并且有一些BLOB,那么您的数据库大小将永远不会大于几GB。 SQLite3对您来说已经足够了,并且此数据库中的TEXT字段没有大小限制。

答案 6 :(得分:0)

没人提到SQL Server Express,所以我想我会这样做...
Microsoft SQL Server Express非常快乐并且也是免费的 是的,它确实有限制,但它们非常大,如果没有OP的进一步信息,就不可能知道它们是否足够。

  • 启用了多个用户 - 是的
  • 多个用户应该能够一次添加新记录 - 是的
  • 能够存储大量数据 - 取决于巨大的定义。但“可能”
  • 用户可以编辑自己的记录 - 嗯,是的
  • 启用Unicode - 是的
  • 尽可能低成本解决方案 - 它是免费的。但数据访问组件将取决于您选择的访问方法