相关疑难解决方法(0)

DynamoDB:我的用例的最佳哈希/排序键[与AppSync/GraphQL混淆]

我计划将AWS Cognito用于用户身份验证,使用DynamoDB进行持久性,并使用AppSync(和许多Mobile Hub)来为API提供支持 - 书评网站.

我很难确定哪个字段应该是我的哈希键,哪个应该是我的排序键,以及我应该创建哪个LSI/GSI.

我有一份书籍清单,详细信息如下:

type Book {
  isbn: Int!
  year: Int!
  title: String!
  description: String
  front_cover_photo_url: String
  genre_ids: [Int]
  count_thumbs: Int
  us_release_date: String
  upcoming_release: Boolean
  currently_featured_in_book_stores: Boolean
  best_seller: Boolean
  reviews: [Review]
}
Run Code Online (Sandbox Code Playgroud)

每次用户撰写有关图书的评论时,我也会有评论记录.

type Review {
  isbn: Int!
  id: ID!
  created_at: String!

  # The user that submitted the review
  user_id: String!

  # The number of thumbs out of 5
  thumbs: Int!

  # Comments on the review
  comments: String!
}
Run Code Online (Sandbox Code Playgroud)

在我的案例中,书籍可以有多种类型 - 例如"幻想"和"戏剧".书籍也有用户评论,其数据存储在Cognito中.我们将在每本书旁边以反向时间顺序显示评论.

问题1:如果我将非规范化并Drama用作流派而不是流派ID 2 …

amazon-web-services amazon-dynamodb amazon-cognito graphql aws-appsync

6
推荐指数
1
解决办法
1369
查看次数

用于存储多种文档类型的最佳 DynamoDB 架构是什么?

阅读 Amazon DynamoDB 文档,我仍然无法理解将它用于最常见任务的最佳方式是什么 - 拥有多种类型的文档(例如,“用户”、“事件”、“新闻”),所有文档都具有唯一的 ID . 据我了解,由于 DynamoDB 仅暗示对文档主键的限制,我们可以在其中存储任何具有主键的数据。因此,最自然的解决方案看起来像:

- partion key 'type' is document type - 'user', 'event' etc
- sort key is uuid
Run Code Online (Sandbox Code Playgroud)

但这与官方文档相矛盾,根据它,更好的是:

- partition key 'id' is just uuid
- sort key is type - 'user', 'event'
Run Code Online (Sandbox Code Playgroud)

但由于关键名称,这与常识相矛盾。最后,我们可以为用户、事件和新闻创建 3 个不同的 DynamoDB 实例,所有实例都使用 uuid 作为分区键,没有排序键。哪种解决方案是 DynamoDB 使用的最佳或常见做法?

amazon-web-services amazon-dynamodb

5
推荐指数
1
解决办法
575
查看次数

如何在DynamoDB中处理多对多

我是NoSql和DynamoDb的新手,但是来自RDBMS ..我的表正从MySql移动到DynamoDb.我有表:
customer(列:cid [PK],名称,联系人)
硬件(列:hid [PK],名称,类型)
租(列:rid [PK],cid,hid,time).=>这是客户与硬件项的关联.

一个客户可以拥有许多硬件项,一个硬件项可以在许多客户之间共享.

要求:单独的客户列表和hadware项目应该能够检索.
租赁细节 - 哪个客户借用哪个Hardeware Item.

我提到了这个 - 二级索引表.这是关于将所有列保留在一个表中.
我想有2个DynamoDb表:
Customer - 它具有类似于列和一组硬件项哈希键的所有属性.(然后我的问题是,当查询客户表以仅检索客户时,也会加载所有硬件密钥.)

请问表格结构的任何指导?如何保存,加载甚至更新?
请问任何java样本?(找不到任何类似于我的场景的有用资源)

nosql amazon-dynamodb

5
推荐指数
2
解决办法
4032
查看次数

DynamoDB分区表如何?

DynamoDB文档描述表分区是如何工作的原则,但其对细节(如数字)很轻。DynamoDB表分区究竟如何以及何时进行的?

amazon-dynamodb

0
推荐指数
2
解决办法
380
查看次数