zoukankan      html  css  js  c++  java
  • Hbase篇--HBase中一对多和多对多的表设计

    一.前述

    今天分享一篇关于HBase的一对多和多对多的案例的分析。

    二.具体案例

    案例一.多对多

       人员-角色
      人员有多个角色  角色优先级
      角色有多个人员
      人员 删除添加角色
      角色 可以添加删除人员
      人员 角色 删除添加
     

    PS:说明,两张表User表和Role表, User表中定义两个列族,第一个列族是名字,第二个列族中  多个列定义为具体的角色,列的内容定义为具体的值,即优先级(这里利用了列也能存信息,所以把角色Id定义为具体的列,值越大代表优先级越高

    案例二.一对多

    组织架构 部门-子部门
      查询 顶级部门
      查询 每个部门的所有子部门
      部门 添加、删除子部门
      部门 添加、删除

    PS:解释 一个表 rowkey中0代表顶级部门  1代表非顶级部门  因为顶级部门不是经常查  列族的列是具体的子部门列表。值是具体的名称。

    案例三.

    3、微博
    添加关注
    查看粉丝列表
    发布微博
    查看某个用户所有的微博  排序:时间降序排序
    查看首页  时间降序排序


    001小明       关注  韩梅梅、李雷
    002李雷       关注  韩梅梅
    003韩梅梅


    关注粉丝表
    rowkey         CF1 - 关注列表       CF2 - 粉丝列表
    pid

    小明   001     CF1:003=韩梅梅;CF1:002=李雷;
    李雷   002     CF1:003=韩梅梅;         CF2:001=小明;
    韩梅梅 003                             CF2:001=小明;CF2:002=李雷;


    微博表
    rowkey           cf
    wid            cf:content=微博内容;

    wid设计:
    pid_(Max-timestamp)


    收取微博表
    rowkey    cf (maxversion=1000)
    pid          cf:sq=wid;

  • 相关阅读:
    Lab IGMP
    IGMP知识要点
    15、通过例子讲解逻辑地址转换为物理地址的基本过程
    14、一个程序从开始运行到结束的完整过程,你能说出来多少?
    13、进程状态的切换你知道多少?
    12、虚拟技术你了解吗?
    11、动态分区分配算法有哪几种?可以分别说说吗?
    线程池
    10、内存交换和覆盖有什么区别?
    9、如果系统中具有快表后,那么地址的转换过程变成什么样了?
  • 原文地址:https://www.cnblogs.com/LHWorldBlog/p/8306096.html
Copyright © 2011-2022 走看看