demo需求描述如下:
概念:基础客户群、组合客户群、客户子群、客户
组合客户群由多个基础客户群或者组合客户群通过一定的规则组合而成,
客户子群由某一个基础客户群或者组合客户群拆分而成,
现需从客户群中提取客户信息;
想要把所有客户信息存储到一张表中,然后与客户群关联,该如何设计客户群表?
目前想到的思路:
1 建立一个包含客户群基本信息的表与用户关联,然后分别建立基础群、组合群、子群与客户群关联,但不知该如何处理关联关系。
2 分别建立基础客户群、组合客户群和客户子群,但在处理子群时形成了闭环。
困扰了很久,希望大家能指点解决思路,不胜感激啊
这个在查询的时候根据你的规则递归遍历判断是否存在闭环
你是通过什么条件判断闭环的?
客户 1:n 客户基础群
客户基础群 1:n 组合客户群 (组合客户群son 1:n 组合客户群far)
组合客户群 n:n 客户子群
如果不是业务要求必须,我建议可以将 客户子群 直接定义为“由组合客户群拆分形成的新的客户群”(因为组合客户群在某种意义上也可以理解为基础客户群)
并且每个群都有自己的群ID,根据群ID应该不会出现闭环吧?
客户信息表 cust_id (客户号)
基础客户群 base_cust_id(基础客户群号)
客户与基础客户群关系表 cust_id (客户号), base_cust_id(基础客户群号)
组合客户群 sum_cust_id(组合客户群号) , sum_cust_id_from(依赖的组合客户群号) , base_cust_id(基础客户群号)
客户子群 son_cust_id(客户子群号) , sum_cust_id(组合客户群号) , cust_id(客户号)
ps:可以根据递归查询出每个组合客户群的客户号,但是无法查出客户子群的客户号,故在客户子群中加上客户号。