Redis键-值数据库 nosql 数据建模(3)------ 如何存储主从表数据 一对多关系
作者:QQ 14588019 WonderfulLife
customers表 (主表)
cust_id cust_name mobile address
3892045 杨帆 13500138000 北京市朝阳区东土城路怡和阳光大厦C座
1027709 田野 13600138000 广东省深圳市南山区高新南七道
orders表 (从表)
ord_id cust_id ord_date state
1035 3892045 2018-04-22 已签收
1039 3892045 2018-04-22 配送中
1065 3892045 2018-04-22 配送中
1033 1027709 2018-04-23 已出库
1044 1027709 2018-02-19 已签收
创建第1条客户信息
cust_id cust_name mobile address
3892045 杨帆 13500138000 北京市朝阳区东土城路怡和阳光大厦C座MULTI
HMSET customer:3892045:hset cust_id 3892045 cust_name "杨帆" mobile "13500138000" address "北京市朝阳区东土城路怡和阳光大厦C座"
LPUSH customer:list 3892045 # 队列中保存的客户编号集合用来分页
EXEC
---------------------------------------------------------------------------------------------
创建第1条订单信息
ord_id cust_id ord_date state
1035 3892045 2018-04-22 已签收MULTI
HMSET order:1035:hset ord_id 1035 cust_id 3892045 ord_date "2018-04-22" state "已签收"
SADD customer:3892045:child:set 1035 # 使用集合存储从表主键,即通过主表主键找从表明细
LPUSH order:list 1035 # 队列中保存的订单编号集合用来分页
EXEC创建第2条订单信息
ord_id cust_id ord_date state
1039 3892045 2018-04-22 配送中MULTI
HMSET order:1039:hset ord_id 1039 cust_id 3892045 ord_date "2018-04-22" state "配送中"
SADD customer:3892045:child:set 1039 # 使用集合存储从表主键,即通过主表主键找从表明细
LPUSH order:list 1039 # 队列中保存的订单编号集合用来分页
EXEC创建第3条订单信息
ord_id cust_id ord_date state
1065 3892045 2018-04-22 配送中MULTI
HMSET order:1065:hset ord_id 1065 cust_id 3892045 ord_date "2018-04-22" state "配送中"
SADD customer:3892045:child:set 1065 # 使用集合存储从表主键,即通过主表主键找从表明细
LPUSH order:list 1065 # 队列中保存的订单编号集合用来分页
EXEC===================================================================================================
创建第2条客户信息
cust_id cust_name mobile address
1027709 田野 13600138000 广东省深圳市南山区高新南七道MULTI
HMSET customer:1027709:hset cust_id 1027709 cust_name "田野" mobile "13600138000" address "广东省深圳市南山区高新南七道"
LPUSH customer:list 1027709 # 队列中保存的客户编号集合用来分页
EXEC
---------------------------------------------------------------------------------------------
创建第1条订单信息
ord_id cust_id ord_date state
1033 1027709 2018-04-23 已出库MULTI
HMSET order:1033:hset ord_id 1033 cust_id 1027709 ord_date "2018-04-23" state "已出库"
SADD customer:1027709:child:set 1033 # 使用集合存储从表主键,即通过主表主键找从表明细
LPUSH order:list 1033 # 队列中保存的订单编号集合用来分页
EXEC创建第2条订单信息
ord_id cust_id ord_date state
1044 1027709 2018-02-19 已签收MULTI
HMSET order:1044:hset ord_id 1044 cust_id 1027709 ord_date "2018-02-19" state "已签收"
SADD customer:1027709:child:set 1044 # 使用集合存储从表主键,即通过主表主键找从表明细
LPUSH order:list 1044 # 队列中保存的订单编号集合用来分页
EXEC****************************************************************************************************显示客户编号(3892045)的信息
127.0.0.1:6379> HGETALL customer:3892045:hset
127.0.0.1:6379> LLEN customer:list # 返回记录总数
127.0.0.1:6379> LRANGE customer:list 0 20 # 这是第1页的20条记录主键
127.0.0.1:6379> LRANGE customer:list 21 40 # 这是第2页的20条记录主键
127.0.0.1:6379> LRANGE customer:list 41 60 # 这是第3页的20条记录主键
显示明细主键集合
127.0.0.1:6379> SMEMBERS customer:3892045:child:set
显示明细信息
127.0.0.1:6379> HGETALL order:1035:hset
127.0.0.1:6379> HGETALL order:1039:hset
127.0.0.1:6379> HGETALL order:1065:hset
本篇讲解完毕 未经许可,不得商用出版发行!
补充说明 NoSql多对多关系建模 只需在"添加明细时"另外再加一个集合用来把对方的主键存储在“明细中”某个主键包含的集合中即可,跟本篇几乎一模一样,就不另外开篇讲解了!
Redis键-值数据库 nosql 数据建模(3)------ 如何存储主从表数据 一对多关系相关推荐
- Redis键-值数据库 nosql 数据建模(4)------ 如何存储主从表数据 一对超级多关系
Create GUIDs online 全球唯一主键 作者:QQ 14588019 WonderfulLife 本范例中不能使用guid编号作为明细的id,如果这么干,明细将无法查询,分页就更别谈啦 ...
- Redis键-值数据库 nosql 数据建模(5)------ 如何存储树形结构的数据
作者:QQ 14588019 WonderfulLife 关系型数据库电商产品分类表 catgories id name parentId idPath 101 level1 1st category ...
- 键值数据库LevelDB的优缺点及性能分析
导读:LevelDB是一种为分布式而生的键-值数据库. 作者:廖环宇 张仕华 来源:大数据DT(ID:hzdashuju) 01 LevelDB的特性 LevelDB是一个C++语言编写的高效键-值嵌 ...
- redis专题:redis键值设计、性能优化以及redis连接池配置
文章目录 1.redis键值设计 ①:key设计规范 ②:value设计规范 2. 命令使用优化 3. redis连接池配置参数设计 4. redis连接池预热 5. redis的key过期删除策略 ...
- 从零开始设计键值数据库(KEY-VALUE STORE)
本文主要参考 System Design Interview: An Insider's Guide(CHAPTER 6) 键值存储(key-value store),也被称为键值数据库(key-va ...
- Redis在电影票系统的设计与实现(Redis键值对设计)
[辰兮要努力]:hello你好我是辰兮,很高兴你能来阅读,昵称是希望自己能不断精进,向着优秀程序员前行! 博客来源于项目以及编程中遇到的问题总结,偶尔会有读书分享,我会陆续更新Java前端.后台.数据 ...
- 分布式事务键值数据库 TiKV 加入 CNCF 沙箱孵化器
百度智能云 云生态狂欢季 热门云产品1折起>>> 云原生计算基金会 CNCF 昨日宣布接纳 TiKV 开源分布式事务键值数据库作为 CNCF 沙箱的早期发展云原生项目. TiKV ...
- 键值数据库PebblesDB读后感
键值数据库PebblesDB读后感 在LevelDB/RocksDB这种分层思路上,PebblesDB提出了一种减少写放大的思路,下面学习并总结,所述以论文为基础,也有个人 观点,客观论 ...
- Spring集成Redis键值乱码\xac\xed\x00\x05t\x00\tb
目录 一.Spring集成Redis键值乱码 二.解决方法 三.问题分析 一.Spring集成Redis键值乱码 Spring集成Redis设置缓存数据时,发现键值乱码 设置的key前面有乱码\xac ...
最新文章
- Java基础(二十七)Java IO(4)字符流(Character Stream)
- python 是什么类型的语言-Python什么意思是一门什么样的语言
- TCP/IP 四次断开
- 用python计算两个二维list依据第二维的前一个数据相加
- Three.js之渲染器
- python unpack infinity_fit_转换出错:输入包含NaN、infinity或对dtype(“float64”)太大的值...
- 微服务组件记事本:本地搭建Skywalking
- Sentinel(十九)之主流框架的适配
- php中source,PHP中source #N问题的解决方法
- 你真的了解iOS怎么取属性的吗?
- python爬虫之js链接跳转抓取_Python爬虫获取页面所有URL链接过程详解
- ubuntu16.04没有声音解决方案( 通俗易懂)
- svn分支和主干的同步操作
- js实现文字跑马灯效果
- 叶俊:让能量爆棚的秘诀
- Q版京剧脸谱来喽——武生
- 在C语言二级考试中编程题编译,二级C语言上机编程题
- 判断IE浏览器的文档模式以及浏览器模式
- signature=f2fd61184b3328e471644f6fd3617f29,IPSEC-×××-CA
- “功夫高考”之高考状元的七种武器
热门文章
- matplotlib入门基础(五)轴坐标范围 轴刻度比例 轴刻度
- C++技术——构造法
- 在ubuntu中使用7z压缩命令分卷压缩超大文件
- Ubuntu18.04卸载并重新安装Ubuntu及
- POJ 3264.Balanced Lineup-RMQ(ST)详解
- 使用TensorFlow XLA辅助实现BERT预训练加速
- chrome插件,装这个就够了
- No.04 色散补偿 O-FDE算法 交叠频域均衡算法 MATLAB Python 代码实现
- “死亡之星”——“阿波非斯”
- python中文分句_python实现中文文本分句的例子