【发布时间】:2018-04-03 08:43:18
【问题描述】:
来自 SQL 背景,试图理解 NoSQL 尤其是 DynamoDB 选项。鉴于此架构:
{
"publist": [{
"Author": "John Scalzi",
"Title": "Old Man's War",
"Publisher": "Tor Books",
"Tags": [
"DeepSpace",
"SciFi"
]
},
{
"Author": "Ursula Le Guin",
"Title": "Wizard of Earthsea",
"Publisher": "Mifflin Harcourt",
"Tags": [
"MustRead",
"Fantasy"
]
},
{
"Author": "Cory Doctorow",
"Title": "Little Brother",
"Publisher": "Doherty"
}
]
}
我可以让主表将作者/标题作为哈希/范围键。全局二级索引可以是 Publisher/Title。这里的最佳做法是什么。如何在没有全表扫描的情况下获取发布者的所有作者列表?不能有二级索引,因为 Publisher/Author 不是唯一的!如果我想要所有带有 DeepSpace 标签的标题,我还有什么选择?
编辑:请参阅下面的 RPM 和 Vikdor 答案。 GSI 不必是唯一的,因此 Publisher/Author 是可能的。但问题仍然存在:是否有任何解决方法可以通过标签获取所有作者,而不需要全表扫描?
【问题讨论】:
标签: amazon-web-services nosql amazon-dynamodb