【发布时间】:2017-08-15 22:06:09
【问题描述】:
我们正在做一个多租户 Web 应用程序,架构是单一代码库 - 多个数据库。
我们有一个主数据库,它将存储所有租户及其相应的用户信息。
每当有新租户向我们注册时,我们都需要为每个租户提供单独的数据库。每个租户大约有 15 张桌子。
我们可以看到两个选项来处理这种情况
可以有一个 sql 文件作为项目的一部分,每当有新租户注册时,我们可以运行脚本来创建新的数据库和表。在这里,我需要维护所有架构修改,并且静态表很少。随着我们继续,静态表数据将被修改。所以所有这些历史都必须维护,我们需要在租户注册时运行整个脚本。
可能存在具有最新架构的空数据库。因此,当租户注册时,我可以从数据库动态创建脚本并运行它。我不需要维护历史记录,因为空的数据库架构总是最新的。
如果有其他方法,请告诉我。
随着功能的增长,我们还需要修改现有租户表的架构(新列、新表)。在考虑这种情况时,我们认为第一个选项可能是最好的,因为我们将有更改查询,但在第二个选项中,我需要比较可能很乏味的架构。
请分享您对如何设计它的想法。
【问题讨论】:
-
您解决了这个问题吗?如果您这样做了,请与我分享您使用的解决方案。非常感谢
标签: c# sql-server database entity-framework multi-tenant