如何使用每个租户应用程序处理带有数据库的多租户应用程序,其中每个数据库都有不同的架构

时间:2021-05-10 19:49:23

标签: database design-patterns architecture multi-tenant application-design

我目前正在构建一个多租户应用程序,其中每个租户都有自己的数据库。我正在努力解决的问题是每个数据库可能具有截然不同的结构。大约有 150 个不同的租户,每个数据库都不同。有没有一种方法可以干净地管理这个?

我知道如何处理具有多个数据库的单个应用程序,但我不知道如何在多个不同的架构上实现这一点,而代码库变得不可维护。最初的想法是分离数据层,这样每个租户都有自己的存储库和实体作为单独的微服务。从长远来看,这并不是真正可扩展的,但可以将核心逻辑与单个数据库分开,但感觉有点麻烦。 是否有任何模式、建议或示例可以指向我,以便我可以进一步阅读?或者说这个方法是完全不可行的?

我不是要求任何人为我编写代码或提供解决方案。我只是想为可能曾在这种情况下工作过并可能建议采取进一步措施的人提供一些建议。

1 个答案:

答案 0 :(得分:0)

我认为创建一个通用数据层是您最好的选择。您绝对没有可扩展的解决方案,因为您没有可扩展的问题。希望它们有足够的共同点,您可以拥有一个公共映射层,其中包含针对与公共核心不同的特定实体的插件/覆盖。