1.3.18 示例

优质
小牛编辑
128浏览
2023-12-01

以记事本应用为例,此应用支持通过浏览器和移动客户端两种方式存取数据。下面是基于关系数据库的表设计:

CREATE TABLE note (
  userId VARCHAR(64) NOT NULL,
  noteId INT8 NOT NULL, -- 自增ID
  title VARCHAR(256),
  content VARCHAR(2048),
  version INT,
  mtime BIGINT, 
  category VARCHAR(16),

  PRIMARY KEY(userId, noteId),
  INDEX(userId, mtime), -- 修改时间索引
  INDEX(userId, category) -- 类别标签索引
);

假设应用有四种访问模式:

1.根据noteId查询一条笔记的详细信息

2.根据noteId保存一条笔记的详细信息(可对version进行条件写入,以检测是否有并发修改)

3.根据笔记的修改时间进行扫描分页查询,仅显示title,用户可点击进一步查看一条笔记详细信息

4.根据笔记的类别标签进行查询

  • 表定义

    对于此应用,可以转化为SDS的表定义:

    • 实体组键 - userId,开启哈希分布
    • 主键 - noteId,逆序编码
    • 修改时间索引 - mtime,逆序编码,eager类型的索引。并对titlenoteId做投影
    • 类别索引 - categorylazy类型的索引

本指南的API都将以这个表为示例进行讲解