我建立一个SaaS应用程序,我们正在讨论关于每个客户一个数据库VS共享数据库。 我也读了不少,在所以这里incluisve一些话题,但我还有很多疑点。
我们plataform应该是每一个客户高度定制。 (他们应该能够定制表格和自定义字段添加到现有表)。 在多个数据库的形式给出了在这种情况下似乎很大。
问题是。 应我的“用户”表在master数据库中或在每个客户端数据库? 用户可能有一个或多个组织,所以它会出现在多个数据库。 此外,什么样左右的国家表等通用表?
这是有道理的在master数据库中。 但是,我有其中有一个外键用户CREATED_BY领域的许多表。 也有通过客户端一些权限相关的表格。
我将失去外键,如果多个数据库,这意味着更多的数据库查询的力量。 我知道我可以使用数据库之间的交叉连接,如果他们是在同一个服务器,但后来我松散的可扩展性。 (我可能需要在未来的多个数据库服务器)。 我已经约因子评分联合表格。 不知道性能。
我使用的技术是PHP和symfony的2框架和MySQL数据库。
另外,恐怕关于维护这样的系统。 我们可以创造一些脚本来自动在所有数据库架构的变化,但如果我们有10K的客户,这将意味着10K的数据库。
你怎么看待这个opiniion? 我的应用程序的主要caracteristic应该是灵活因此,如果客户需要比基本plataform可是没有更具体的东西,它应该能够做到这一点他。