【发布时间】: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