直销数据库架构如何设计?采用oracle数据库!

原来一直都是做olap的架构设计,现在接触oltp,做直销数据库架构设计,求各位大神指指招!需求分析:  1. 一个用户只能拥有2个下级,如果此用户还有推荐下级用户,则放到子下级下面  2. 每注册一个用户,就要为该用户的上6级用户分红,当然分红是有条件的,如果注册用户...显示全部
原来一直都是做olap的架构设计,现在接触oltp,做直销数据库架构设计,求各位大神指指招!需求分析:
  1. 一个用户只能拥有2个下级,如果此用户还有推荐下级用户,则放到子下级下面
  2. 每注册一个用户,就要为该用户的上6级用户分红,当然分红是有条件的,如果注册用户处于绩效少的一侧才分红,否则不分,离得最近的3个上级,每个上级分10%,离得远的3个上级,每个上级分5%。

如图:新注册用户J,上级用户是I,当前I只有J一个下级用户,就认为J是I的大区(绩效大),所以I不能分J的分红,然后再往上找上级用户G,注册用户J处于G的小区(绩效小的一侧),所以G要分得I的10%,也就是5块钱。然后依次类推,往上继续判断,总共6个上级用户分红才结束。

1.png


因为用户量比较大,现在需要设计各个表结构,还需要更快的算出每个用户的绩效(每注册一个用户就需要很快的算出提成),当然还要考虑表的IO,是否需要分表。原来做olap没有考虑这么多,求各位支支招
目前确定要建立一个关系表,存储每个用户之间的位置关系,比如在哪一层,位于左侧还是右侧,用户D相对于用户A的位置,大致结构如下
用户id     下级用户id    层次   区域
A             D             2         0
A             J              4         1
B             E              1         1
C             H               2        1
层次就表示当前D在A的第几层,区域就表示D对于A来说,在左边还是在右边,左边则为0。但还有很多不完善的地方,比如该怎么维护关系表,还有哪些设计需要注意的地方,关系表维护好之后,还有注册用户的分红怎么算。要是有直销数据库系统的案例参考就更好了。收起
参与12

查看其它 7 个回答xtsqianli的回答

xtsqianlixtsqianli数据库架构师德家
回复 8# royalwzy


   恩,因为我想的这只是作为一个关系表,只保存各个用户之间的关系。另外绩效提成在单独拿一个表出来计算。
互联网服务 · 2015-08-05
浏览1742

回答者

xtsqianli
数据库架构师德家

xtsqianli 最近回答过的问题

回答状态

  • 发布时间:2015-08-05
  • 关注会员:1 人
  • 回答浏览:1742
  • X社区推广