我希望在 DynamoDB 表中存储大量照片。每张照片都可以属于一个“相册”——实际上,一张照片可以属于多个相册。我想设置数据,以便我可以查询album_id 并检索属于该专辑的所有photo_id。
例如:“获取属于相册 1 的所有照片”
table "album-photo-map"
keys(album_id, timestamp) - photo_id
然后,我可以对表相册照片地图执行范围查询,询问属于相册“1”且时间戳大于 0 的范围键的所有 photo_id。
问题是——如果有两张具有相同时间戳的照片怎么办?DynamoDB 不会让我拥有多个具有相同密钥的项目。
解决此问题的一种方法可能是将 photo_ids 的二进制列表存储在album_id 的数据字段之一中,但随后照片列表将受到 64K 的限制,我不想这样做。
我是否正确地考虑了这一点?是否有解决重复时间戳问题的方法?也许我可以做类似的事情:
timestamp = str(time.time()).replace('.','')
>> 134704419008
并存储它?这是否足够快以消除重复问题?