我正在设计照片共享应用(基于位置)。我计划使用AWS Cognito进行身份验证/授权,使用DynamoDB进行持久数据,使用S3进行文件存储,使用Lambda + API Gateway进行Web服务。
这些是关键的用例/访问模式(注册/登录除外):
这些是我要创建的表格:
Users table
hash-key=userID from cognito
Posts table
hash-key=userID from cognito
range-key=date
other-attributes=title, image-s3-path, ge-location
实现查询的最佳方式是什么(可能在添加LSI,GSI或更多表格的帮助下),以便结果是基于用户当前位置的帖子集合。例如。仅显示半径10公里范围内的帖子,按最新排序。
答案 0 :(得分:2)
你提到你的用例是#chat {
height: 300px;
width: 100%;
border: 1px solid #d9d9d9;
background-color: #f8f8f8;
text-align: left;
padding: 5px;
font-size: 13px;
display: inline-block;
overflow-y: scroll;
word-break: break-all;
}
,所以说帖子的一个好的哈希键是按空格坐标而不是用户id分区数据的。[/ p>
我会研究geo哈希并使用类似的东西来获得密钥。您希望选择一个分区键,该分区键提供良好的空间分区,使得帖子均匀分布,并且每个分区键中的帖子相对较少。
答案 1 :(得分:1)
我会考虑使用ElasticSearch,因为它natively supports geohashing