[英]DynamoDB LSI or GSI to query on composite attribute
我正在尝试将 DynamoDB 用于我的 JAVA 项目,我有这个(从我的角度来看)我必须涵盖的奇怪场景。 让我解释一下我是如何组织我的桌子的:
假设我必须存储这些与书籍相关的信息:
book_id
(UUID) 用作自动生成的 PK
author_id
(UUID)
type
(字符串)
book_code
(UUID) 这与 book_id 的概念不同
publishing_house_id
(字符串)
book_gender
(字符串)
以及其他不可查询的动态属性,我正在考虑存储为文档(JSON)
现在,我需要的查询是:
author_id
获取所有书籍author_id and type
book_code, publishing_house_id, book_gender
获取图书(我想强调这个元组是独一无二的)为了涵盖查询#4,我正在考虑:
我不太确定这个设计。
你怎么看?
在这种情况下,查询#4 是使用 LSI 还是 GSI 更好?
对于#4,如果您总是将这三者放在一起,则使用该连接值创建一个属性并将其用作 GSI 的 PK,以便于直接查找。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.