HBase-rowkey 一对多、多对多设计

一、一对多:组织架构 部门-子部门

  • 查询 顶级部门
  • 查询 每个部门的所有子部门
  • 查询 某个部门的父部门
  • 部门 添加、删除子部门
  • 部门 添加、删除
# 是否顶级部门类型(type) 0:顶级部门、1:非顶级部门 
# 部门id(bid)
# cf1(部门信息)、fbid(父部门)
# cf2(子部门)

rowkey		cf1		                                cf2
type_bid	cf1:name=; cf1:fbid=				cf2:bid=

比如:
0_0100		cf1:name=研发部		     			cf2:1_0101=研发部_1; cf2:1_0102=研发部_2
1_0101		cf1:name=研发部_1; cf1:fbid=0_0100
1_0102		cf1:name=研发部_2; cf1:fbid=0_0100

二、多对多:用户和角色

  • 用户有多个角色、角色优先级
  • 角色有多个用户
  • 人员、角色可以添加删除
  • 人员可以添加、删除角色
  • 角色可以添加、删除人员
# 用户表
rowkey			cf1			        cf2
uid			cf1:name=		        cf2:role_id=role_name

# 角色表
rowkey			cf1			        cf2
role_id			cf1:role_name=		        cf2:uid=uname


#用户表
001			cf1:name=张三		        cf2:100=系统管理员
002			cf1:name=李四		        cf2:200=管理员
003			cf1:name=王五		        cf2:400=普通用户
004			cf1:name=赵六		        cf2:400=普通用户

# 角色表
100			cf1:role_name=系统管理员	        cf2:001=张三
200			cf1:role_name=管理员	        cf2:002=李四
300			cf1:role_name=运营
400			cf1:role_name=普通用户	        cf2:003=王五;004=赵六

 

你可能感兴趣的:(HBase)