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

Rows entered with hard coded hashkey but with different range key

我正在尝试创建一个汽车预订应用程序。用户可以预订位于许多办公室附近的汽车。

想知道我是否可以将所有预订放入一个硬编码的散列键 "Bookings" 但具有唯一的范围键。

我想参考所有预订,以便 "Super Admin" 可以进去查看所有内容。预订需要存储 10 年,所以我想我最终会在相同的散列键下得到大约 5000 万条记录,但具有不同的唯一范围键。搜索需要基于三个不同的 日期标准,本地二级索引 1-3。

这样想(只包括具体的"Entity")

            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    ...........

这是应该如何完成的吗?这会导致热 Spots/Hot 分区吗? 感谢任何提示。

我会说不,这不是应该的方式...

首先,DDB 只能在单个分区中存储 10GB,5000 万行它们必须非常小才能容纳。

我建议将 vehicleID(UUID 或 VIN 或 STOCK#)作为哈希键,将 bookingID(UUID 或时间戳或 ???)作为排序键。

为了显示所有预订,您需要对每个 vehicleID 执行 Query(),但您的应用可以并行查询。可选地,Scan() 始终查看每个分区。

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

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

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

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