每个客户端的MySQL数据库

时间:2012-10-22 18:05:18

标签: php mysql sql database

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

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

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

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

  • 我们希望文件位于1个位置,更易于维护和更新
  • 客户无法偶然访问其他客户的财务数据
  • 我们可以对客户数据进行虚拟备份

在我看来,下行是:

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

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

提前致谢!

3 个答案:

答案 0 :(得分:3)

技术上,您可以拥有的数据库数量没有限制。简要搜索shows一些人进入1000多个数据库,我没有看到100多个数据库的问题

答案 1 :(得分:2)

  

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

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

  

客户无法偶然访问其他客户的财务数据

但客户只能通过您的webapp访问数据。如果由于意外或其他方式而受到损害,那么什么阻止它访问其他数据库而不是同一数据库中的非预期记录呢?

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

  

我们可以对客户数据进行虚拟备份

还可以进行选择性备份,例如与SELECT ... INTO OUTFILE

答案 2 :(得分:0)

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

  1. Sql命令更简洁,更容易编写。
  2. 它更安全。如果sql查询或脚本有问题,公司不能无意中访问彼此的数据库。您只需要仔细选择数据库。
  3. 稍后,如果数据库太忙,则将数据库分离到多个服务器。大数据库或表格可能难以拆分。
  4. 表格保持较小,因此查询也更快。
相关问题