好像问题解决了,不是吗?用原来的模型,需要的东西都可以从中找到,但是,服务提供商说,等等,我们要这个代理商的佣金结算金额,分别给出来,但是,不要分成两次计算,希望应用一次运行就能出所有的结果。
这样好像有点问题,从上面可以看到,我们是分两个合同,两次运行才能得到服务推广佣金和连锁代理佣金,怎么办呢?
回到上面的模型,我们可以看到,代理商和合同之间的关系是1 对多,可以支持多个合同,但是,两个合同规定中的结算实体完全不同,如果放在一起结算,结果不会出错,但是会导致许多无用的ServiceItems,和多余的计算过程,想想,同时对服务推广合同下的客户和用户计算连锁佣金和利润提成,以及还要对连锁用户计算服务推广佣金(它们根本就不存在),这是非常不合理的。
可以这样,将代理商与合同的关联上移到基类,从而可以让代理商关联到两个合同,而代理商下属的结算实体关联具体的合同,并由具体的合同和具体的下属结算实体一起进行计算。这样,模型进行小小的改变,支持了应用的完整性。以后增加新的代理商,新的合同条款,多个合同,一样可以适用。
如图所示:
该模型适合中小型代理结算系统,以及适用于其他行业代理结算业务。