2

我需要一些关于这个主题的信息。我搜索了一下,但似乎这真的取决于你的情况。我的情况解释如下:

我们开发了一个系统,让公司可以跟踪他们的项目和财务状况。他们可以创建订单、在员工之间分配任务、发送发票、检查是否已付款等。

目前我们有 1 个域和 1 个数据库,其中包含该公司的所有数据。我们也想将此系统用于其他公司,但在 1 个域上,每个公司都有相同的文件。所以我们可以将文件保存在一个地方,并将所有内容保存在我们自己的服务器上。

我们想使用多个数据库,原因如下:

  • 我们希望文件位于 1 个位置,更易于维护和更新
  • 一个客户不能偶然访问另一个客户的财务数据
  • 我们可以对客户数据进行单独备份

在我看来,缺点是:

  • 如果表中的某些内容需要更新,您必须在每个数据库中手动执行此操作
  • MySQL 在 100 多个数据库之后会变得非常慢吗?

我是否正确,我们是否通过为每家公司提供个人数据库来做正确的事情?

提前致谢!

4

3 回答 3

3

从技术上讲,您可以拥有的数据库数量没有限制。简短的搜索显示有几个人进入了 1000 多个数据库,我认为 100 多个数据库没有问题

于 2012-10-22T18:08:09.243 回答
2

我们希望文件位于 1 个位置,更易于维护和更新

正如您已经提到的缺点,如果更新需要修改数据库的架构怎么办?client与单个数据库(相关表中有指标列)相比,拥有数百个数据库同样难以维护。

一个客户不能偶然访问另一个客户的财务数据

但是客户端只能通过您的 webapp 访问数据。如果它因意外或其他原因而受到损害,除了同一数据库中的意外记录之外,还有什么方法可以阻止它访问其他数据库?

视图可以提供类似的安全优势(尽管目前有一些性能成本)。但是,我倾向于创建存储过程并强制我的应用程序通过它们执行所有数据库操作,其中我可以执行我自己的安全检查,同时将所有数据库访问限制为仅预定义的操作。

我们可以对客户数据进行单独备份

仍然可以进行选择性备份,例如使用SELECT ... INTO OUTFILE.

于 2012-10-22T18:13:58.040 回答
0

有时最好为每家公司使用自己的数据库。从来没有在理论上,但经常在实践中。

  1. Sql 命令更简洁,更容易编写。
  2. 它更安全。如果 sql 查询或脚本出错,公司不会意外访问对方的数据库。您只需要仔细选择数据库。
  3. 稍后如果数据库变得太忙,将数据库分离到多个服务器是非常好的。大型数据库或表可能难以拆分。
  4. 表保持较小,因此查询也更快。
于 2012-10-22T19:23:21.593 回答