【问题标题】:Best choice of database for my C# application我的 C# 应用程序的最佳数据库选择
【发布时间】:2012-07-08 20:11:21
【问题描述】:

我正在编写一个涉及与数据库交互的应用程序。该应用程序将由 100 到 1000 规模的用户使用,并且数据库应该能够存储多达 100,000 行数据。

以前我使用过 Microsoft Access,但我的用户需要安装 microsoft access 数据库引擎才能使我的应用程序按预期运行。我希望我的应用程序尽可能轻巧/便携,那么有没有更好的替代方案,用户不需要安装任何第三方组件来运行我的应用程序?

【问题讨论】:

  • 这在很大程度上取决于这是一个仅客户端应用程序,他们将在本地计算机上存储数据,或者这是一个客户端-服务器应用程序,他们将运行本地 GUI与其他地方的服务器接口。你能具体说明一下这个要求吗?
  • 这是客户端服务器还是基于 Web 的应用程序?
  • 正如所写,这个问题太开放了。成本是考虑因素吗?什么样的应用程序?您/您的公司对数据库支持有哪些了解?
  • 这是一个基于客户端的应用程序。数据库将存储在客户端本地计算机上。
  • 您无需安装 MS Access 即可使用 C# 访问 microsoft access 数据库。您只需要 OLE DB 提供程序。

标签: c# database


【解决方案1】:

取决于数据库是服务器端还是客户端。

如果它是服务器端,这真的取决于你,我个人会使用我最了解的 SQL Server,甚至是 mySql/phpMyAdmin 组合。但是,如果它要驻留在客户端计算机上,请尝试 SQLite(尽管顾名思义,LITE 只是一个警告,因此可能不支持许多更复杂的 SQL)。 SQLite 可能正是您正在寻找的,具体取决于您的项目所涉及的复杂性。

另外:iPhone、Blackberry 和 Android 也支持 SQLite。因此,如果您想使用移动设备,没问题。

【讨论】:

  • 正是我想要的。谢谢。
  • SqLite 不适用于这种类型的负载。最好使用作为服务运行的数据库引擎(SQLServer、MySql、Oracle 等)。
  • @tsells - 就像我说的,这取决于数据库是否将存储在他的服务器上并通过 Web 服务等链接到......或者它是否必须存储在每台客户端机器上。必须让所有客户端都安装 SQLServer 并不是一个明智的决定,而且方式不止一种。我在 SQLite 中(在本例中是 iPhone)中存储的最多记录是大约 45,000 行数据,没有太多麻烦。 100,000 应该没问题,当然取决于一行的数量。
  • Express 版本 (SQL Server Express) 可能是另一种处理方式,但它仅适用于 Windows,它会极大地增加您的安装。我见过很多依赖它来存储大量数据的应用程序。
  • @PaulG 如果他有 100 个用户,我怀疑他是否计划将其存储在本地。除非这是一个真正的独立应用程序(基于用户数量和扩展需求而令人怀疑),否则他应该使用基于服务的实现。 SqlLite 不适合这种吞吐量/并发性。
【解决方案2】:

您的应用程序可以连接到云数据库(如 SQL Azure)。这不需要任何第三方组件,并且可以从任何地方/任何设备访问。

【讨论】:

    【解决方案3】:

    看看 mongoDB,它是一个开源的非关系型数据库,已经开始流行起来。它也非常快。

    【讨论】:

      【解决方案4】:

      您需要为所有用户提供一个数据库,还是每个用户都有自己的数据库?如果它将在服务器端,我更喜欢 SQL Server(例如 MSSQL、MySQL)。但对于客户端,SQLLite 可以完成这项工作。

      【讨论】:

        【解决方案5】:

        您应该考虑 SaaS 模型是否相关,换句话说,您是否可以受益于将所有用户的数据库托管在云上并让客户远程访问它。在您的场景中,如果:(1)您的用户需要扩展他们的个人数据库超出其本地机器的容量,(2)需要在不同用户的数据库之间共享数据,或者可能这可能会启用您今天的系统中没有的良好功能,或者 (3) 用户发现必须在本地计算机上运行数据库很麻烦,因为它已用完资源、所需的正常运行时间、备份等。如果其中任何一个有时是正确的,那么通过某种多租户安排将所有数据库托管在云上可能是一个很好的解决方案,并且会使您的应用程序尽可能轻量级,因为您根本不需要包含数据库。

        【讨论】:

          猜你喜欢
          • 2011-06-15
          • 1970-01-01
          • 1970-01-01
          • 2011-03-29
          • 2014-10-04
          • 2010-10-12
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多