.NET Core 多租户实用性

.NET Core Multi Tenancy practicality

我想知道开发一个多租户的 .NET Core 应用程序是否可行,或者有一个普通的单租户应用程序就足够了吗?

我目前的数据库结构如下:

一个用户属于一个组织(系统管理员除外),一个组织可以有多个产品

当用户登录时,他们的部分声明是 OrganizationId,这意味着他们只能看到他们的 OrganizationId 拥有的产品。

目前,我的 url 看起来像这样:

我的Startup.csurl路由是这样的:

app.UseMvc(routes =>
{
    routes.MapRoute(
      name: "areas",
      template: "{area:exists}/{controller=Home}/{action=Index}/{id?}"
    );
    routes.MapRoute(
        name: "default",
        template: "{controller=Home}/{action=Index}/{id?}"
    );

});

将我现有的应用程序转换为多租户应用程序会不会很困难?就像当属于组织的用户登录时,他们的 url 将是

organizationname.localhost.com:9988/Products/Product

或者我现在的方法够用吗?

我打算构建它来支持多个组织。

我们目前做的事情与您的理论设置非常相似。每个租户各自运行相同的代码 'server'(容器化)。配置中的大部分"difficulty"应该与服务器相关而不是.Net本身。

根据您的业务领域,您可能想要确定是否有任何客户会因为他们的数据与其他人的数据混合而感到不安。如果这没什么大不了的,只是逻辑 (org) 分离工作,请忽略我。