【发布时间】:2012-10-23 03:23:21
【问题描述】:
我需要一些关于这个主题的信息。我搜索了一下,但似乎这真的取决于你的情况。我的情况解释如下:
我们开发了一个系统,让公司可以跟踪他们的项目和财务状况。他们可以创建订单、在员工之间分配任务、发送发票、检查是否已付款等。
目前我们有 1 个域和 1 个数据库,其中包含该公司的所有数据。我们也想将此系统用于其他公司,但在 1 个域上,每个公司都有相同的文件。所以我们可以将文件保存在一个地方,并将所有内容保存在我们自己的服务器上。
我们想要使用多个数据库的原因如下:
- 我们希望文件在一个地方,更易于维护和更新
- 一个客户不能偶然访问另一个客户的财务数据
- 我们可以对客户数据进行单独备份
我认为缺点是:
- 如果表中的某些内容需要更新,您必须在每个数据库中手动更新
- MySQL 在 100 多个数据库之后真的会变慢吗?
我是否正确,我们是否通过为每家公司提供个人数据库来做正确的事情?
提前致谢!
【问题讨论】:
-
简而言之,不,1:1的数据库是错误的公司关系。我认为,即使给每家公司一张单独的桌子也太过分了。为什么不直接使用虚拟表来限制访问?
-
如果您的数据库服务器在添加
n数据库后变得“慢”,那就是您添加另一台服务器的部分。 -
@raina77ow 我不同意,我们按公司划分表。对于我们的情况,每家公司都有 10m+ 行,因此我们必须将它们拆分。这完全取决于您的具体情况。
-
你的程序逻辑应该负责不允许 A 公司看到 B 公司的数据。
-
您确定要添加多个数据库吗?为什么不为新公司添加一个额外的table?我确定您编写应用程序逻辑是为了隐藏安全信息。