amazon-dynamodb - 如何为分层模型选择分区和排序键
问题描述
如果这不是问这个问题的正确地方,请告知。
我正在尝试为涵盖以下查询模式的简单关系模型(卖家有很多客户,客户有很多订单)找到合适的分区键/排序键对:
- 对于给定的卖家,获取给定客户在某个日期范围内的所有订单;
- 对于给定的卖家,获取某个日期范围内所有客户的所有订单。
我的订单 ID 格式为yyyy-mm-dd-random_string
,因此可以按日期排序。每个订单只有一件商品。
seller_id
用作分区键和排序键涵盖了第一个用customer_id#order_id
例,但没有办法“跳过”客户。
如何从同一记录中获取这两个查询?
奖金:
- 有没有办法在没有二级索引的情况下做到这一点?
- 是否有“跳过”等级关系的一般方法?
解决方案
seller_id
为了支持您的第二个查询,您需要在和上创建二级索引order_id
。
有一种方法可以在没有二级索引的情况下做到这一点,但它需要全表扫描。
在分层键模式中“跳过”字段的一般方法是创建一个 GSI,其键省略您正在“跳过”的字段。
推荐阅读
- vba - 如何覆盖 scripting.dictionary 中键的值?
- java - 根据递归划分数组
- oracle - 试图找出 Oracle 中 Rowid 的最大长度
- python - Python - 检查生成器是否为空
- azure - 如何监控 Azure 存储帐户的 IOPS
- python - 我可以在 Python 中使用 os.path.join() 加入网址还是有更好的方法?
- header - 删除 HeaderBar gtk3 vala
- c# - Viewbag“值不能为空”,但它不为空
- sapb1 - ODBC-2028 错误 SAP B1
- javascript - 淘汰赛:在加载时使用 ajax 加载可观察数组