NoSQL Workbench 的示例数据模型 - Amazon DynamoDB
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

NoSQL Workbench 的示例数据模型

建模器和可视化器主页显示了一些随 NoSQL Workbench 提供的示例模型。本节介绍了这些模型及其潜在用途。

员工数据模型

该数据模型是一个入门模型。它表示员工的基本详细信息,例如唯一的别名、名字、姓氏、职务、经理和技能。

该数据模型描述了一些技术,例如处理复杂的属性,具有多种技能,等等。该模型也是经理及其下属员工建立的一对多关系示例,这是通过二级索引 DirectReports 实现的。

该数据模型实现的访问模式是:

  • 使用员工的登录别名检索员工记录,这是通过名为 Employee 的表实现的。

  • 按姓名搜索员工,这是通过名为 Name 的 Employee 表全局二级索引实现的。

  • 使用经理的登录别名检索经理的所有直接下属,这是通过名为 DirectReports 的 Employee 表全局二级索引实现的。

论坛数据模型

该数据模型表示一个论坛。通过使用该模型,客户可以加入开发人员社区,提问以及回复其他客户的帖子。每个 Amazon 服务都有一个专门的论坛。任何人可以在论坛中发布消息以发起新的讨论话题,每个话题会收到任意数量的回复。

该数据模型实现的访问模式是:

  • 使用论坛的名称检索论坛记录,这是通过名为 Forum 的表实现的。

  • 检索论坛的特定话题或所有话题,这是通过名为 Thread 的表实现的。

  • 使用发布用户的电子邮件地址搜索回复,这是通过名为 PostedBy-Message-Index 的 Reply 表全局二级索引实现的。

音乐库数据模型

该数据模型表示一个音乐库,其中包含大量歌曲,并以近乎实时的方式展示下载最多的歌曲。

该数据模型实现的访问模式是:

  • 检索歌曲记录,这是通过名为 Songs 的表实现的。

  • 检索歌曲的特定下载记录或所有下载记录,这是通过名为 Songs 的表实现的。

  • 检索歌曲的特定月度下载数记录或所有月度下载数记录,这是通过名为 Song 的表实现的。

  • 检索歌曲的所有记录(包括歌曲记录、下载记录和月度下载数记录),这是通过名为 Songs 的表实现的。

  • 搜索下载最多的歌曲,这是通过名为 DownloadsByMonth 的 Songs 表全局二级索引实现的。

滑雪胜地数据模型

该数据模型表示一个滑雪胜地,该滑雪胜地每天收集每个滑雪缆车的大量数据。

该数据模型实现的访问模式是:

  • 检索给定滑雪缆车或整个滑雪胜地的所有数据(动态和静态),这是通过名为 SkiLifts 的表实现的。

  • 检索特定日期的滑雪缆车或整个滑雪胜地的所有动态数据(包括独特缆车乘员、积雪量、雪崩危险和缆车状态),这是通过名为 SkiLifts 的表实现的。

  • 检索特定滑雪缆车的所有静态数据(包括缆车是否仅供有经验的乘员使用、缆车上升的垂直高度和缆车乘坐时间),这是通过名为 SkiLifts 的表实现的。

  • 检索特定滑雪缆车或整个滑雪胜地的数据记录日期(按总独特乘员数排序),这是通过名为 SkiLiftsByRiders 的 SkiLifts 表全局二级索引实现的。

信用卡优惠数据模型

该数据模型由信用卡优惠应用程序使用。

信用卡提供商在一段时间内提供优惠。这些优惠包括免费余额转账、增加信用额度、降低利率、现金返还和航空里程数。在客户接受或拒绝这些优惠后,将相应地更新优惠状态。

该数据模型实现的访问模式是:

  • 使用 AccountId 检索账户记录,这是通过主表实现的。

  • 检索几乎没有映射项目的所有账户,这是通过二级索引 AccountIndex 实现的。

  • 使用 AccountId 检索账户以及与这些账户关联的所有优惠记录,这是通过主表实现的。

  • 使用 AccountIdOfferId 检索账户以及与这些账户关联的特定优惠记录,这是通过主表实现的。

  • 使用 AccountIdOfferTypeStatus 检索与账户关联的特定 OfferType 的所有 ACCEPTED/DECLINED 优惠记录,这是通过二级索引 GSI1 实现的。

  • 使用 OfferId 检索优惠和关联的优惠项目记录,这是通过主表实现的。

书签数据模型

该数据模型是客户使用的存储书签。

一个客户可以具有很多书签,并且一个书签可以属于很多客户。该数据模型表示多对多关系。

该数据模型实现的访问模式是:

  • 现在,按 customerId 运行的单个查询可以返回客户数据以及书签。

  • 查询 ByEmail 索引按电子邮件地址返回客户数据。请注意,不会按该索引检索书签。

  • 查询 ByUrl 索引按 URL 获取书签数据。请注意,我们将 customerId 作为索引的排序键,因为多个客户可能为同一 URL 添加书签。

  • 查询 ByCustomerFolder 索引按文件夹获取每个客户的书签。