這次分享的內容很簡單,就是一張表的設計思路。
一、背景
在做交易所的時候有個需求,需要統計邀請注冊人數,比如 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.有了這些記錄之后,查詢統計就方便多了,用戶的層級關系也一目了然。