Architecture 针对我的情况推荐最佳方法(多租户与有abp的单租户)

Architecture 针对我的情况推荐最佳方法(多租户与有abp的单租户),architecture,domain-driven-design,aspnetboilerplate,Architecture,Domain Driven Design,Aspnetboilerplate,我正在为一种计费应用程序建模,它涉及系统中的3个主要角色:保险人、医疗提供商和分析师。我选择aspnetboilerplate应用程序框架来构建我的解决方案。我试图从我的限制中选择单一与多租户 医疗提供者,需要登记患者,其他提供者看不到 医疗提供商,拥有一个经理帐户,由整个系统的经理创建,但可以在其“租户”下创建其他用户 电子邮件作为用户名,在整个系统中应该是唯一的,而不是每个医疗提供者 保险公司,在其自己的门户上审查医疗提供商的医疗索赔 分析员在保险公司面前审计索赔 管理员用户创建管理员医疗提

我正在为一种计费应用程序建模,它涉及系统中的3个主要角色:保险人、医疗提供商和分析师。我选择aspnetboilerplate应用程序框架来构建我的解决方案。我试图从我的限制中选择单一与多租户

  • 医疗提供者,需要登记患者,其他提供者看不到
  • 医疗提供商,拥有一个经理帐户,由整个系统的经理创建,但可以在其“租户”下创建其他用户
  • 电子邮件作为用户名,在整个系统中应该是唯一的,而不是每个医疗提供者
  • 保险公司,在其自己的门户上审查医疗提供商的医疗索赔
  • 分析员在保险公司面前审计索赔
  • 管理员用户创建管理员医疗提供商并注册保险公司

  • 在这种情况下,多租户方法是最好的,还是单租户在使用aspnetboilerplate时更适合这种情况?

    根据这些要求,您应该采用Abp多租户方法。在Abp中,当您使用界面时,Abp可以根据登录用户的租户自动筛选您的查询响应

    public class Product : Entity, IMustHaveTenant
    {
        public int TenantId { get; set; }
        public string Name { get; set; }
        //...other properties
    }
    
    这样,ASP.NET样板就知道这是特定于租户的 实体和自动将租户的实体与其他实体隔离开来 租户

    你可以从他们那里得到更多的信息

    什么是多租户?

    “软件多租户是指一种软件体系结构,其中 软件的单个实例在服务器上运行,并为多个服务器提供服务 租户。租户是一组与共享公共访问权限的用户 软件实例的特定权限。具有多租户 体系结构,软件应用程序旨在提供 租户拥有实例的专用共享,包括其数据, 配置、用户管理、租户个人功能和 非功能属性。多租户与多实例形成对比 体系结构,其中独立的软件实例代表 不同的租户”(维基百科)

    主机对租户

    我们定义了多租户系统中使用的两个术语:

    租户:拥有自己用户、角色、权限的客户, 设置。。。并使用与其他应用程序完全隔离的应用程序 租户。多租户应用程序将有一个或多个租户。如果 这是一个CRM应用程序,不同的租户也有自己的 客户、联系人、产品和订单。所以当我们说“房客” “用户”,我们指的是租户拥有的用户

    主机:主机是单例的 (只有一台主机)。主机负责创建和更新 管理租户。“主机用户”处于更高级别且独立 来自所有租户,并且可以控制他们


    这不是一个问题。这是业务需求。您应该进行研究,尝试做一些事情,然后如果您有任何特定的代码问题,您可以询问。但代码在哪里?我没有看到任何。我关心的是,在ABP中选择什么,因为如果我们使用租户,会有很多限制,但如果不使用它,也会失去很多功能。有人推荐什么,我已经知道如何实现这些特性,这只是基于框架的良好使用选择什么的问题。