数据建模

这正是 DynamoDB 与 SQL 分歧最大的地方。你不会按每个实体一张表的方式去做范式化 —— 而是从访问模式出发,设计能为这些模式服务的键,往往把每个实体都打包进一张表里。做得好, 你只需一次 Query 就能取回父项及其子项,无需任何连接。

做得不好,你会得到一张查不了的表,以及一次跑不动的迁移。所以其中的权衡很重要,本节会 诚实地说明那些单表设计反而是错误选择的情形。

已读 0/7测验

先从单表设计开始 —— 之后的一切都建立在这个心智模型之上。

在动手构建之前,先用免费的单表设计工具勾勒 schema——它会把一份访问模式清单变成一个 PK/SK/GSI 方案。然后试用 DynoTable,针对真实的表来建模并浏览这些布局——而对于你的键服务不了的临时问题,它的 SQL Workbench 会在客户端运行 JOINGROUP BY 和聚合。