【问题标题】:Recommend best approach on my situation (Multitenancy vs Single Tenant with abp)根据我的情况推荐最佳方法(多租户与使用 abp 的单租户)
【发布时间】:2019-05-16 07:54:10
【问题描述】:

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

  1. 医疗提供者,需要招募患者,其他提供者看不到
  2. Medical Provider,有一个经理账号,由整个系统的经理创建,但可以在其“租户”下创建其他用户
  3. 电子邮件被用作用户名,并且在整个系统中应该是唯一的,而不是每个医疗提供者。
  4. 保险公司在其自己的门户上查看医疗服务提供者的医疗索赔。
  5. 在保险公司面前分析审计索赔
  6. 管理员用户创建 admin Medical Providers 并注册 Insurers。

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

【问题讨论】:

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

标签: architecture domain-driven-design aspnetboilerplate


【解决方案1】:

有了这些要求,你应该采用 Abp 多租户方法。在 Abp 中,当您使用IMustHaveTenant 接口时,Abp 可以根据您登录用户的租户自动过滤您的查询响应。

public class Product : Entity, IMustHaveTenant
{
    public int TenantId { get; set; }
    public string Name { get; set; }
    //...other properties
}

这样,ASP.NET Boilerplate 就知道这是特定于租户的 实体并自动将租户的实体与其他实体隔离 租户。

您可以从他们的multi-tenancy documentation 获得更多信息。

什么是多租户?

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

主机与租户

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

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

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

【讨论】:

    猜你喜欢
    • 2016-01-02
    • 1970-01-01
    • 1970-01-01
    • 2018-05-07
    • 1970-01-01
    • 2012-12-12
    • 2019-04-23
    • 2011-02-14
    相关资源
    最近更新 更多