首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用硬编码hashkey输入但具有不同范围键的行

使用硬编码hashkey输入但具有不同范围键的行
EN

Stack Overflow用户
提问于 2019-07-12 04:14:41
回答 1查看 66关注 0票数 1

我正在试着创建一个叫车应用。用户可以在许多办公室周围预订汽车。

想知道我是否可以把所有的预订放在一个硬编码的hashkey " bookings“中,但有唯一的范围键。

我想有一个参考所有的预订,以便“超级管理员”可以进去,并查看一切。预订需要存储10年,所以我想我最终将在相同的hashkey下存储大约5000万条记录,但具有不同的唯一范围键。搜索需要基于三个不同的日期标准,本地二级索引1-3。

像这样思考(只包括特定的“实体”)

代码语言:javascript
复制
            Hash Key    Range Key   LSI-1       LSI-2       LSI-3       Other Attributes...
            -------------------------------------------------------------------------------
Bookings    "Bookings"  UUID        CreatedAt   BookedFrom  BookedTo    ...........
                        UUID        CreatedAt   BookedFrom  BookedTo    ...........
                        UUID        CreatedAt   BookedFrom  BookedTo    ...........
                        UUID        CreatedAt   BookedFrom  BookedTo    ...........
                        UUID        CreatedAt   BookedFrom  BookedTo    ...........
                        UUID        CreatedAt   BookedFrom  BookedTo    ...........

这是不是应该这样做呢?这会导致热点/热点分区吗?感谢你给我的提示。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-07-15 22:24:18

我会说不,这不是应该这样做的.

首先,DDB只能在单个分区中存储10‘d,50m行必须非常小才能容纳。

我建议使用vehicleID (UUID或VIN或STOCK#)作为散列键,使用bookingID (UUID或时间戳或?)作为排序关键字。

为了显示所有预订,您需要在每个查询上使用vehicleID (),但是您的应用程序可以并行查询。可选的是,Scan()总是查看每个分区。

如果您没有其他地方存储vechicleIDs列表,则可以包含一个hashkey = "VEHICLES“记录,该记录包含一个vechicleID列表。

此外,例如,带有vechicleID和sortley = "INFO“的记录可用于存储车辆详细信息。

但是您并没有真正提供足够的信息来真正设计DDB解决方案。

对于RDB,您必须知道您计划存储什么。使用DDB,您不必确切地知道您计划存储什么,但您确实需要确切地知道需要如何访问这些数据。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56996678

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档