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;
Hbase篇--HBase中一对多和多对多的表设计的更多相关文章
- ABP框架中一对多,多对多关系的处理以及功能界面的处理(1)
在我们开发业务的时候,一般数据库表都有相关的关系,除了单独表外,一般还包括一对多.多对多等常见的关系,在实际开发过程中,需要结合系统框架做对应的处理,本篇随笔介绍基于ABP框架对EF实体.DTO关系的 ...
- Hibernate中一对多和多对一关系
1.单向多对一和双向多对一的区别? 只需要从一方获取另一方的数据时 就使用单向关联双方都需要获取对方数据时 就使用双向关系 部门--人员 使用人员时如果只需要获取对应部门信息(user.getdept ...
- HBase篇--HBase操作Api和Java操作Hbase相关Api
一.前述. Hbase shell启动命令窗口,然后再Hbase shell中对应的api命令如下. 二.说明 Hbase shell中删除键是空格+Ctrl键. 三.代码 1.封装所有的API pa ...
- mybatis 中一对多、多对一、多对多、父子继承关系
mybatis 中处理一对多.多对一.多对多.父子继承关系的有关键词:association .collection .discriminator id – 一个 ID 结果:标记出作为 ID 的结果 ...
- NHibernate 集合映射基础(第四篇) - 一对一、 一对多、多对多小示例
映射文件,用于告诉NHibernate数据库里的表.列于.Net程序中的类的关系.因此映射文件的配置非常重要. 一.一对一 NHibernate一对一关系的配置方式使用<one-to-one&g ...
- Hibernate 中一对多和多对多映射
1. 一对多映射 1.1 JavaWeb 一对多建表原则 多方表的外键指向一方表的主键; 1.2 编写一对多的 JavaBean // 客户(一方)和联系人(多方) // 客户(一方) JavaBea ...
- 用SQLAlchemy创建一对多,多对多关系表
多对多关系表的创建: 如果建立好多对多关系后,我们就可以通过关系名进行循环查找,比如laowang = Teacher.query.filter(Teacher.name=='laowang').fi ...
- java类集开发中一对多和多对多的关系的实现
摘自<java开发实战经典>李兴华.著 一对多的关系 一个学校可以包含多个学生,一个学生属于一个学校,那么这就是一个典型的一对多关系,此时就可以通过类集进行关系的表示. 在定义Studen ...
- Mybatis 中一对多,多对一的配置
现在有很多电商平台,就拿这个来说吧.顾客跟订单的关系,一个顾客可以有多张订单,但是一个订单只能对应一个顾客. 一对多的顾客 <?xml version="1.0" encod ...
随机推荐
- g_thread_init
NAME g_thread_init - 初始化线程系统 SYNOPSIS #include <glib.h> //in gthread.h void g_thread_init (GTh ...
- pyzmq学习笔记
前言 使用过简单的python的ZMQ:server开启3个线程,client发送心跳包,如果服务端超过n秒没应答,则重新连接. 网上找的案例,server使用的zmq.device,但是一直不明白什 ...
- haproxy4-acl配置
访问控制设定: 匹配后可进行那些操作: Use _backend : 当符合条件时使用特定的backend后端, Use_backend <backend> [{if | unles ...
- idea看源码
idea看源码,可以直接搜索.看接口具体调用的是哪个类里面的方法(多态)
- Random Erasing Augmentation(REA)
为了增强模型的泛化的性能,一般的手段有数据增强和正则化方法(如dropout,BN),而用于数据增强的一般方法有:随机裁剪.随机水平翻转.平移.旋转.增加噪音和生成网络方法等(前两个方法用的最多,也最 ...
- 使用Anaconda虚拟环境编译caffe-gpu pycaffe
1. 前提: 安装前服务器情况,已经安装好了: CUDNN=7.3.0 CUDA=10.0.130 Opencv 2.4.13 相应命令为: cuda 版本 cat /usr/local/cuda/v ...
- 用python做一个搜索引擎(Pylucene)
什么是搜索引擎? 搜索引擎是“对网络信息资源进行搜集整理并提供信息查询服务的系统,包括信息搜集.信息整理和用户查询三部分”.如图1是搜索引擎的一般结构,信息搜集模块从网络采集信息到网络信息库之中(一般 ...
- Mac下使用数据库将Excel数据转换存入.plist
记录于2013/10/26 基本步骤: 1.将Excel表格另存为.csv格式 2.用类似TextWrangler工具将.csv文件转成UTF-8格式 3.使用火狐插件SQLite Manager ...
- selenium 打开新标签页(非窗口)
如何利用webdriver打开多个标签页和链接呢,到处查找得到的往往只是如何打开标签页. 打开标签页很简单,浏览器打开标签页的快捷键是ctrl+t,那把ctrl+t的按键事件传入即可,很多种实现方式, ...
- iis 和 node express 共用80端口 iisnode 全过程
一.首先下载iisnode.exe https://github.com/tjanczuk/iisnode/wiki/iisnode-releases 链接 安装完毕! 二.打开IIS 7 选中 D ...