参考https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/bp-adjacency-graphs.html.我想知道是否有人可以帮助我.
在桌子上,我不明白如何创建排序键?这是一个存储Bill-ID和Invoice-ID的属性吗?还是两个独立的属性?我觉得这是一个灵活的属性,如果是这样,你如何区分彼此?我们如何构建排序键的查询?
只是通过查看前缀"Bill-"或"Invoice-"?DynamoDB的实践似乎使用破折号(" - ")来分隔属性中的值.如果有人可以给我这些事情的用例,我也会感激不尽,但除非在这种情况下重要,否则我会切断正切.
现在,这是非常相关且非常有趣的https://youtu.be/xV-As-sYKyg?t=1897,其中演示者使用一个产品表来存储各种类型的项目:书籍,歌曲专辑和电影; 并且每个都有自己的属性.
我在理解那里使用的排序键时遇到了问题.我知道productID = 1是bookID,productID = 2是专辑.现在让它变得混乱的是我用红色圈出的东西.这些是专辑2的曲目.但是,排序键的结构是"albumID:trackID".现在,"trackID"在哪里?它是否意味着用实际ID替换"trackID"这个词?或者这是一个完全像"albumID:trackID"的文本?
如果我想查询特定的trackID怎么办?我的查询的语法是什么?
谢谢大家!!!:-)
我正在建立一个论坛,并研究使用DynamoDB和邻接表对数据进行建模。一些顶级实体(例如用户)可能与其他顶级实体(例如评论)具有多种类型的关系。
例如,假设我们希望能够执行以下操作:
因此,本质上我们有很多(喜欢或关注)多对多(用户<=>注释)。
注意:本示例是故意删除的,实际上,将要建立更多的关系模型,因此我尝试在此处考虑可扩展的内容。
以下顶级数据可能在任何邻接列表表示中都是常见的:
First_id(Partition key) Second_id(Sort Key) Data
------------- ---------- ------
User-Harry User-Harry User data
User-Ron User-Ron User data
User-Hermione User-Hermione User data
Comment-A Comment-A Comment data
Comment-B Comment-B Comment data
Comment-C Comment-C Comment data
Run Code Online (Sandbox Code Playgroud)
此外,对于下面的每个表,将有一个等效的全局二级索引,其中交换了分区键和排序键。
这是我想在DynamoDB中建模的内容:
使用第三个属性定义关系的类型:
First_id(Partition key) Second_id(Sort Key) Data
------------- ---------- ------
Comment-A User-Harry "LIKES"
Comment-B User-Harry "LIKES"
Comment-A User-Harry "FOLLOWS"
Comment-B User-Ron "LIKES"
Comment-C User-Hermione "FOLLOWS"
Run Code Online (Sandbox Code Playgroud)
这种方法的缺点是查询结果中存在多余的信息,因为它们会返回您可能不在乎的多余项目。例如,如果您要查询 …
我目前面临一些有关数据库设计的问题。目前,我正在开发一个API,可让用户执行以下操作:
调用API方法会触发AWS Lambda在DynamoDB表中执行请求的操作。
我当前的计划如下所示:
通过指定时间范围和配置文件ID,应该可以查询项目。但是我认为我的设计完全违背了DynamoDB的目的。AWS文档说,设计良好的产品只需要一张桌子。