如何在多租户SaaS产品中容纳每个用户的业务逻辑?

时间:2013-05-02 04:21:34

标签: php mysql codeigniter saas

我们正在构建一个SaaS产品,帮助公交运营商生成账单并向客户发送发票。问题是,每个运营商(我们的客户)都有他/她独特的公式来计算关税。

我们无法概括并提出一个规范的公式。但我可以告诉你,所有公式都接受相同的输入变量,并产生一个称为关税的输出变量。

我们正在用PHP构建它,我首先考虑让客户在textarea中编写他们的公式,然后使用eval()来执行它。但这听起来很愚蠢。

有没有办法构建一个客户可以用来构建公式的交互式公式构建器?如果是这样,我能将最终公式存储在数据库中吗?或者有没有办法在没有eval()的情况下使用它?

1 个答案:

答案 0 :(得分:1)

  

我首先考虑让客户在textarea中编写他们的公式,然后使用eval()来执行它

这非常容易出错,并可能导致烦恼和沮丧的用户。

这种类型的问题有很多方法,但规则引擎似乎特别适合。规则引擎允许您使用元数据指定此类处理,而不是对其进行硬编码。一些规则引擎甚至提供最终用户友好的用户界面。

我对Drools有很好的经验,但我还没有看过它如何与PHP集成。

规则引擎比仅仅在用户提供的函数上调用eval()要复杂得多,但它更有可能导致可维护的软件和快乐的客户。