我们正在制定新的要求,我们需要根据与客户的合同启用功能。它是基于Saas的软件,支持多租户。默认情况下,该软件已启用基本功能。
基本功能
客户管理
基本结算/发票
通过电子邮件发送通知
付款
高级功能
通过短信通知
工作流
等
所有客户端都由相同的软件提供服务(显然是相同的部署),但数据将存储在不同的数据库模式中。
在这种情况下如何处理基本,高级,添加和专业功能?
我们正在使用spring和hibernate。
答案 0 :(得分:0)
AFAIK,您应该在应用程序内部处理这些内容,以便将通知,工作流等功能标记为应用程序功能,并且对于每个租户,租户ID和功能之间将存在映射,以便租户可以访问仅限于他订阅的功能。
因此,当租户或其用户登录系统时,我们会识别他可以访问的功能和内容,然后将其显示给用户。这被称为租户许可系统。
此外,无论何时使用某项功能,您的代码都应该记录使用该功能的租户以及使用时间与测量单位相关的成本和时间。
有关详细讨论,请参阅here
虽然这些都是用C#解释的,但概念理解应该没有任何阻碍。