目录
百战程序员,全站22050+开发课程+文档 ,学习精选优质好课快人一步!观看视频 快捷键ALT+N

大数据全系列 教程

1869个小节阅读:467.3k

收藏
全部开发者教程

408考研

JAVA全系列 教程

面向对象的程序设计语言

Python全系列 教程

Python3.x版本,未来主流的版本

人工智能 教程

顺势而为,AI创新未来

大厂算法 教程

算法,程序员自我提升必经之路

C++ 教程

一门通用计算机编程语言

微服务 教程

目前业界流行的框架组合

web前端全系列 教程

通向WEB技术世界的钥匙

大数据全系列 教程

站在云端操控万千数据

AIGC全能工具班

A

A A

White Night

阅读(273)
赞(0)

##四、表设计

###4.1 用户角色表设计

1. 分析传统的人员角色表:

tb_user:id,username,nickname,sex,...

tb_role:id,name,desc,....

tb_user_role:user_id,role_id,created_date,created_by

用户表 角色表 用户和角色的关联关系表

关系型数据库中,表设计遵循三范式:

(1)主键 (2)每列不能再分 (3)外键关联

2. hbase的设计:

该方式不好,效率比较低。

为了满足数据的本地化存取,设计冗余字段。

用户表user:

rowkeybase(人员信息) roles(角色列表)  
 base:namebase:ageroles:roles:……
uid人员编号人员名称年龄优先级1(名称)优先级2 

对用户基本信息的操作是只需要操作base列族中的信息即可。不涉及到roles列族。比如要查询某用户都有哪些角色,只需要查询roles列族中的信息即可。

角色表:

rowkeybase users(用户列表)  
 base:namebase:descusers:users:……
角色编号角色名称角色描述name1name2 

对角色基本信息操作时,只需要操作base列族中的信息即可。如果需要查询某个角色都被哪些用户授予了,只需要查询users列族中的用户列表即可。

用户表记录:

角色表记录:(角色表的用户id列存什么值???)

了解:协处理器 coprocessor,类似于关系型数据库中的触发器trigger

  1. 最好通过冗余的方式在一条记录中查到所有需要的信息,避免跨主机查询数据
  2. 查询数据最好通过rowkey直接查询,不要扫描,扫描过滤比较慢

见《HBase权威指南》4.3章节

 

北京市昌平区回龙观镇南店村综合商业楼2楼226室

©2014-2023 百战卓越(北京)科技有限公司 All Rights Reserved.

京ICP备14032124号-2