我们正在做一个多租户Web应用程序,架构是单一代码库-多个数据库。
我们有一个主数据库,将存储所有租户及其对应的用户信息。
每当一个新的租户在我们这里注册时,我们需要为他们每一个都有一个单独的数据库。每个租户约有15个表。
对于此情况,我们有两个可见的选项:
1. 可以有一个SQL文件,它将作为项目的一部分,并且每当一个新租户注册时,我们可以运行脚本来创建新的数据库和表格。在这里,我需要维护所有模式修改,而且有些表是静态的。随着我们的移动,静态表数据会发生变化。因此,所有这些历史记录都必须得到维护,并且在租户注册时需要运行整个脚本。
2. 可以有一个最新架构的空数据库。因此,当租户注册时,我可以从数据库中动态创建脚本并运行它。我不需要维护历史记录,因为空数据库架构将始终是最新的。
如果还有其他方法,请告诉我。
随着功能的增长,我们还需要对现有租户表格的架构进行修改(新增列,新增表)。在考虑此情况时,我们认为第一种选择可能是最好的,因为我们将有更改查询,但在第二种选择中,我需要比较模式,这可能是繁琐的。
请分享您对如何设计它的想法。
我们有一个主数据库,将存储所有租户及其对应的用户信息。
每当一个新的租户在我们这里注册时,我们需要为他们每一个都有一个单独的数据库。每个租户约有15个表。
对于此情况,我们有两个可见的选项:
1. 可以有一个SQL文件,它将作为项目的一部分,并且每当一个新租户注册时,我们可以运行脚本来创建新的数据库和表格。在这里,我需要维护所有模式修改,而且有些表是静态的。随着我们的移动,静态表数据会发生变化。因此,所有这些历史记录都必须得到维护,并且在租户注册时需要运行整个脚本。
2. 可以有一个最新架构的空数据库。因此,当租户注册时,我可以从数据库中动态创建脚本并运行它。我不需要维护历史记录,因为空数据库架构将始终是最新的。
如果还有其他方法,请告诉我。
随着功能的增长,我们还需要对现有租户表格的架构进行修改(新增列,新增表)。在考虑此情况时,我们认为第一种选择可能是最好的,因为我们将有更改查询,但在第二种选择中,我需要比较模式,这可能是繁琐的。
请分享您对如何设计它的想法。