我有一个多租户架构的MVC应用程序。在这里,有一些全局变量(每个租户的所有用户都通用),有些是特定于登录用户的。 此外,还有一些设置对特定租户的所有用户都是通用的。
我正在存储和检索全局和会话变量,如下所述。
HttpContext.Current.Session["sessionVariableName]
。这些变量在用户登录时加载。HttpContext.Current.Application["applicationVariableName"]
。这些变量在应用程序启动时加载到Global.asax中。现在我有一个问题,如何加载租户特定的变量。在哪种情况下我需要加载vaiables?我不想在应用程序启动时加载所有租户特定变量,因为许多租户可能没有使用该应用程序。此外,在每个用户登录时检查和加载租户特定设置可能是开销。 什么是最好的方法?
答案 0 :(得分:0)
在您的情况下,我想建议以下方法
的数据库实体详细信息
<强> 1。 TenantSettings 强> 以下可以是TenantSettings
的列
- TenantId
- SettingId
- SettingValue
- AuditFields,如CreatedBy,CreatedOn,IsActive,UpdatedBy ......
<强> 2。 UserSettings 强>
- 用户ID
- TenantId
- SettingId
- SettingValue
- 审核类似于上述
的字段
希望这有帮助。