【问题标题】:Building up an online administration service, what database strategy should I go for建立在线管理服务,我应该采用什么数据库策略
【发布时间】:2012-08-01 17:53:43
【问题描述】:

我正在建立一个用于企业管理目的的在线(付费)服务。数据库的结构如下:

我有一个包含人员、联系信息等的联系人表。然后我还有一些其他表格,其中包含有关付款、协议和约会的信息。还有统计数据,比如这个月转了多少钱,这个月有多少小时的约会等等。

我正在使用 MySQL(但如果需要,也可以使用 MSSQL 或其他一些服务)并且我没有接受过任何编程语言的正式培训(目前)。

我正在构建一个 WPF 应用程序来访问该数据库。还计划构建一个应用程序,以便用户可以访问他们的数据并计划新的约会并在旅途中注册付款。 我要去一个登录系统来验证他们登录和使用我的服务的权利。

我的问题是关于如何构建它。我不是 SQL 专家,也没有接受过 SQL 或任何其他编程语言的正式培训。但我所知道的是,我的客户端应用程序几乎处于 alpha 阶段。

到目前为止,我已经想出了两种方法来构建它。

1.用户获得一个单独的数据库。

我最初的想法是给每个用户一个单独的数据库,这样可以更容易地为人们提供统计数据。此外,它还可以更轻松地通过多个单独的服务器分散工作负载。人们将登录到存储他们的登录信息的主/主服务器,获取他们的服务器信息并以编程方式“重定向”到他们自己的数据库。传播这些数据库还可以更轻松地为用户提供个人备份。

这样做的缺点是我必须管理大量的数据库。我计划最终拥有数十万用户。假设我希望系统能够提供给无限数量的用户。

2。一切都存储在一个数据库中。

还可以将所有内容存储在一个数据库中。这将使数据库结构更加复杂(同时它也使整体更加简单)。我必须在每个查询中添加 'AND consumer_ID='" + MyID + "' 。 (这当然是可能的)并添加一些表来处理每个用户的统计信息。

为每个用户提供相同的数据库更新会更简单。维护会更容易。

这样做的不利之处在于,将工作负载分散到单独的服务器变得更加困难,我必须构建一些东西以使单独的服务器相互镜像成为可能。此外,我必须确保工作负载在服务器之间自动分配,而不是简单地:用 X 数据库填充服务器,然后是新服务器、填充、新建等。

我不想雇佣受过任何 SQL 培训的人。

现在对我来说最重要的是系统可以轻松维护,同时仍然安全可靠。我是一名业余开发者,明年上大学。我不想花费 50% 的时间来维护数据库。

我想我得到了您可能需要的大部分详细信息,如果您还需要,请向他们索取。 提前谢谢你:)

【问题讨论】:

    标签: mysql sql database structure


    【解决方案1】:

    只需采用解决方案 2。将工作负载分散到多个服务器的不利之处通过“分区”来实现,请在此处查找起点:http://dev.mysql.com/doc/refman/5.1/en/partitioning-overview.html

    例如,分区将允许您将包含消费者 ID 的表的所有信息放在一个服务器上,而将所有其他信息放在第二台服务器上。或者任何你想要的......

    但我不会开始那么复杂:你现在需要吗?它会给您(无论哪种方式)带来如此大的额外开销!您还可以查看 NoSQL 数据库世界,寻找可以轻松传播到任意数量服务器的解决方案。在大多数情况下,您松散了 SQL 及其 ACID 功能;如果您需要这些 NoSQL,则不是一种选择。

    【讨论】:

    • 感谢您的回答。我确实需要那些 SQL 功能。我确实知道如何管理和建立一个相对高效的数据库。我对数据库有一些经验,只是没有达到我现在想要的规模。我想我现在会坚持使用 nr.2 解决方案,除非有人不同意好的论点,否则这确实更容易。我知道数据库有很多可能,我只需要知道正确的功能。在进一步“扩展”之前/期间,我将做大量阅读:) 关于我应该使用哪个 SQL 提供程序的任何想法(MySQL、MSSQL /// 任何我没听说过的东西)?
    • 到目前为止我只使用过 MySQL,但 PostgreSQL 对我来说看起来更有希望。它更加一致(例如只有 ONE 表类型)并且具有我在 MySQL 中错过的一些不错的功能(例如 DDL 语句在事务中处理)。不幸的是,我对商业数据库产品一无所知。
    • PostgresSQL 似乎没有得到广泛支持。谷歌搜索在我国托管的结果为零。主要是更多问题,例如:“我想要 PostgresSQL 托管,但找不到它!”我会在不久的将来尝试在我的机器上安装 PostgresSQL,以便比较版本。
    • 哦,我的比较甚至不是完整的;我对 MySQL 有很好的经验,但我不喜欢 MySQL 的主要事情在 PostgreSQL 中都不存在。但是,PostgreSQL 可能还有其他不好的地方,我只是不知道(除了支持,这在我的情况下没有争议,因为我使用专用服务器用于 MySQL 的内部用途)
    猜你喜欢
    • 2013-06-09
    • 2018-02-02
    • 1970-01-01
    • 2018-06-30
    • 2020-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-25
    相关资源
    最近更新 更多