我正在建模一种计费应用程序,该系统涉及系统上的三个主要角色,即保险人,医疗提供者和分析师,我选择aspnetboilerplate应用程序框架来构建我的解决方案。我正在尝试从约束中选择“单租户还是多租户”。
在这种情况下使用aspnetboilerplate时,多租户方法是最佳选择还是单租户更合适?
答案 0 :(得分:0)
有了这些要求,您应该采用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应用程序,不同的租户也有自己的 客户,联系人,产品和订单。所以当我们说一个“房客 用户”,指租户拥有的用户。
主机:主机为单例 (只有一个主机)。主机负责创建和 管理租户。 “主机用户”处于较高级别且独立 并可以控制所有租户。