CodeRoadMap
首页路线题库资源库文章社区
CodeRoadMap

程序员的学习成长路线图。内容免费开放,登录后可同步路线图与课时进度。

由 程序员柏风 独立维护 · 关于作者

学习

  • 路线图
  • 课程
  • 面试题
  • 文章
  • 我

更多

  • 资源
  • 社区
  • 关于作者
  • 内容说明

© 2026 CodeRoadMap

津ICP备2026012044号-1·津公网安备12011002026155号·coderoadmap@126.com
DynamoDB 入门/课时/数据模型
RawBlame
课时目录12 节

DynamoDB 入门

  1. 01DynamoDB 是什么
  2. 02数据模型
  3. 03分区键与排序键
  4. 04CRUD 与条件写
  5. 05GSI 与 LSI
  6. 06Query 与 Scan
  7. 07DynamoDB Streams
  8. 08Spring 集成
  9. 09容量模式
  10. 10时序库对照
  11. 11DynamoDB vs MySQL
  12. 12综合练习

数据模型

Table、Item、Attribute;与 MongoDB 文档对照。

35 分钟

数据模型

DynamoDB 用 Table → Item → Attribute 组织数据。Item 类似 MongoDB 文档,但 必须含主键,且 schema 灵活(除键外无固定列)。

学习目标

  • 掌握 Table、Item、Attribute 三层结构
  • 理解 DynamoDB 类型系统与 JSON 映射
  • 对照 MongoDB 文档模型与 MySQL 表行

核心内容

三层结构

层级含义对照
Table逻辑容器,类似 Collection/表MongoDB Collection / MySQL Table
Item一条记录,最多 400 KBMongoDB Document / MySQL Row
Attribute键值对字段Document 字段 / Column
{
  "PK": { "S": "TRACK#mongodb-essentials" },
  "SK": { "S": "META" },
  "title": { "S": "MongoDB 入门" },
  "lessonCount": { "N": "12" },
  "tags": { "SS": ["nosql", "document"] }
}

CLI 用类型前缀(S/N/SS 等);SDK v2 可自动映射 Java 类型。

类型与 Java 映射

// AWS SDK v2 Enhanced Client 注解示例
@DynamoDbBean
public class TrackMeta {
    private String pk;      // PK = TRACK#<slug>
    private String sk;      // SK = META
    private String title;
    private Integer lessonCount;

    @DynamoDbPartitionKey
    public String getPk() { return pk; }

    @DynamoDbSortKey
    public String getSk() { return sk; }
}

对照 mongodb-essentials:@Document 无强制主键结构;DynamoDB 主键设计决定一切查询能力(见 ddb-keys)。

单表设计(Single-Table Design)

PK=USER#u_1001     SK=PROFILE        → 用户资料
PK=USER#u_1001     SK=LESSON#xxx     → 课时进度
PK=TRACK#mongo     SK=META           → 课程元数据(实验用,非 cf_track 权威)

MySQL 会拆成 user、user_progress、cf_track 多表;DynamoDB 常用 一张表 + 复合键 承载多种实体。cf_track 仍留 MySQL,实验表名如 CodeRoadMapLab。

练习

  • 用 AWS CLI describe-table 查看某表的 KeySchema
  • 设计 3 种 Item 的 PK/SK 前缀(USER、TRACK、LESSON)
  • 对比 MongoDB lesson_logs 文档,说明 DynamoDB 多一项什么约束
  • 小结

    Table/Item/Attribute + 复合 PK/SK = DynamoDB 建模基础;主键即查询入口。 下一课分区键与排序键设计。

    加载本节练习…
    ← 上一课DynamoDB 是什么下一课 →分区键与排序键