这次分享的内容很简单,就是一张表的设计思路。

一、背景

在做交易所的时候有个需求,需要统计邀请注册人数,比如 A邀请B, B邀请C, C邀请D。那么A的邀请人数就是3个,B的邀请人数就是2个,C的邀请人数就是1个。除此之外,还要能统计出A直接邀请人数,A下一级邀请人数,A下二级邀请的人数,以此类推。

二、实现

首先是用户注册信息表UserInfo需要增加一个ParentId字段。

然后,新建一张层级关系表TeamLevel,表结构如下:

CREATE TABLE `teamlevel` (`Id` bigint(20) NOT NULL,`UserId` varchar(50) DEFAULT NULL COMMENT '用户Id',`ParentId` varchar(50) DEFAULT NULL COMMENT '推荐人Id',`Level` int(10) DEFAULT NULL COMMENT '层级',PRIMARY KEY (`Id`)
)

1.在注册的时候需要往这张表插入数据,比如D推荐E来注册,就需要往库里插入如下记录:

2.有了这些记录之后,查询统计就方便多了,用户的层级关系也一目了然。

转载于:https://www.cnblogs.com/w3liu/p/10068398.html

无限级分销系统数据库表设计相关推荐

  1. php二级分销数据表的设计,无限级分销系统数据库表设计

    在做交易所的时候有个需求,需要统计邀请注册人数,比如 A邀请B, B邀请C, C邀请D.那么A的邀请人数就是3个,B的邀请人数就是2个,C的邀请人数就是1个.除此之外,还要能统计出A直接邀请人数,A下 ...

  2. mysql设计积分兑换表_积分系统数据库表设计.docx

    积分系统数据库表设计 文件编号:JHDZ/SJ 密 级: 云上城积分功能数据库设计文档 项目名称:<云上城>项目代号:XXX版 本:V1.0编制单位:平台运营编制日期:2014-10-08 ...

  3. 数据库设计:用户登录系统数据库表设计

    用户登录系统数据库表设计 最近看了看公司后台用户登录系统的设计, 比较混乱, 主要还是因为URS和Oauth以及URS第三方这三个登录形式各不相同导致的. 下面着重介绍一下涉及到第三方登录中需要注意的 ...

  4. 新催收系统数据库表设计的小结

    总结下前几个月设计的新催收系统,主要是数据库方面的一个设计. 解决旧催收系统的一个严重的性能问题. 可以讲需要开发新催收系统的根本原因,就是这个. 主因只有一个,就是帐单表h_bills. 这个表包括 ...

  5. WMS系统数据库表设计

    了解了下网上关于库存表的设计,结合个人的思索认为可以有如下的设计模式: 总的原则:库存表和出入库记录分开.有一种设计是没有库存表,只有出入库记录表,要查询库存就利用出入库记录动态计算.如此用到库存的地 ...

  6. 消息提醒系统:设计模式与实现方案 (公告(通告)、消息、提醒等基本功能数据库表设计与实现)

    参考地址: 公告(通告),消息,提醒等基本功能数据库表设计_DamonREN的博客-CSDN博客 多种消息提醒系统的设计模式.实现方案(附功能截图+表结构)_黑夜的风的博客-CSDN博客_消息提醒 设 ...

  7. Oracle数据库表设计时的注意事项

    Oracle数据库表设计时的注意事项  表是Oracle数据库中最基本的对象之一.万丈高楼从平地起,这个基础对象对于数据库来说,非常重要.因为其设计是否合理,直接跟数据库的性能相关.从Oracle数据 ...

  8. 不定字段数目的数据库表设计和数据结构

    不定字段数目的数据库表设计和数据结构 可能采用四种技术: 动态增加数据库表字段 预留足够的空白字段,运行时作动态影射 用xml格式保存在单字段里 改列为行,用另外一个表存放定制字段 现在我们来分析一下 ...

  9. 数据库表设计、 数据库分层、myslq水平拆分、oracle表分区

    数据库表设计 数据库表结构设计方法及原则(li)数据库设计的三大范式:为了建立冗余较小.结构合理的数据库,设计数据库时必须遵循一定的规则.在关系型数据库中这种规则就称为范式.范式是符合某一种设计要求的 ...

最新文章

  1. 陷阱~关于引用类型,请不要模棱两可!
  2. MVC Action Filters 总结
  3. 克隆虚拟机 virtualbox 修改 uuid
  4. springcloud 使用git作为配置中心
  5. 创建一棵二叉树(C++)以及遍历
  6. Win10蓝屏原因分析记录
  7. 度分秒与度数相互转换的Matlab函数
  8. 【WPF扁平化界面设计】
  9. 《DirectX 9.0 3D游戏开发编程基础》-第一篇-VS2010下安装配置DirectX9 runtime和SDK
  10. 导论计算机论文题目,计算机类论文题目
  11. vue的事件修饰符之.prevent
  12. 配流07—基于BPR函数的Frank Wolfe算法
  13. Admob的PIN码接收教程
  14. android 科大讯飞语音播报简单集成
  15. 微信点拼多多砍价显示服务器吃撑,微信狠起来自己人都打?最严外链规范实行,微视、拼多多砍价链接被限制!...
  16. 迅雷极速版服务器响应,如何阻止迅雷极速版强制更新?这个方法很简单
  17. Ruby读excel写入mysql
  18. Mac软件卸载:安全彻底地卸载Microsoft Outlook
  19. arduino灯光装置_基于Arduino的智能家居灯控系统设计
  20. 简易的定时发送生日邮件功能(Listener+定时器+使用java发送邮件)

热门文章

  1. python代码覆盖率工具_Python代码覆盖率分析工具Coverage
  2. javascript 执行效率 java_有效提高JavaScript执行效率的几点知识
  3. winpcap 目的ip 是0_IP基础
  4. python的全局变量 local variable ‘xxx‘ referenced before assignment
  5. java栈的底层实现_JVM 底层原理总结
  6. 20190812:两个数组的交集ⅠⅡ
  7. VB实现可执行文件运行时自删除
  8. Fedora 中的 Yum 命令详解
  9. VB的KeyAscii
  10. SCPPO(十):网站发布中的问题锦集—手动发布网站