选择PK和SK在DynamoDB

mealesbia:

我有以下两个项目,我需要存储dynamodb

  • 艺术家
  • 歌曲

艺术家有一个ID(独特的艺术家),名字和性别。该歌曲有一个ID(独特的歌曲),标题,流派,艺术家和评级。

我应该如何在DynamoDB对此建模?

我在想这样的:ID作为主键和具有包含艺术家或歌曲,使他们被区分的排序键。这是一个很好的选择吗?在示例中,我觉得我看到的排序键多品种。

怎么样在歌曲的项目外地艺术家?如果我只是点到艺术家的ID?

更新:我有许多共同的访问模式。我可以建立一些指标可能解决这个问题,但我还是要选择一个好的PK / SK:

get songs based on title
get songs based on rating
get songs based on genre
get songs based on artist

get artist based on rating
get artist based on gender
get artist based on name

谢谢

Cascader:

有一件事我发现(硬盘的方式)约的NoSQL(DynamoDB)造型是你需要知道的所有的访问模式之前,你建模你的表。在和RDBMS,这是相当常见的第一和优化指标模型后接入模式的改变。这不是NoSQL的造型简单的(否则就不会有大规模的迁移从RDBMS到NoSQL的)。

有了这样说,我现在提出一个简单的模型,并作为问题与访问模式(即“我需要得到所有歌曲的艺术家”)更新我会更新我的答案。

艺术家:

PK:Artist-<Artist ID>Artist-1234SK:<Name>属性:性别等。

歌曲:

PK:Song-<Song ID>Song-5678SK:<Genre>属性:流派,艺术家ID,等级

这种做法只会让你使用他们的ID来获得你的实体。

虽然它在NoSQL的共同反规范化(宋即商店艺术家的数据)为最简单的/更有效的访问,我会与存储艺术家ID,因为它允许更易于更新和更好的一致性去。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章