【以下的问题经过翻译处理】 我想要能够逐层查询数据并按另一个属性排序返回结果。存储和查询已排序的层次数据的最有效方法是什么?
例如,如果我有一个包含四个属性的表:customer_id、country、location 和 last_updated_date,其中location包含像state:county:city这样的层次信息,所以几条记录可能是这样的:
------------|--------|-------------------|-------------|
customer_id |country |location |last_updated |
------------|--------|-------------------|-------------|
123456 |USA |WA:King:Seattle |2022-03-18 |
789012 |USA |WA:King:Kent |2022-03-15 |
098765 |USA |NY:Bronx:NYC |2022-02-28 |
432109 |USA |WA:Spokane:Spokane |2022-03-20 |
表的PK是customer_id,因为大多数查询都会通过customer_id提取信息,但是还有其他用例希望(a)找到给定位置(例如state 或 county)中的所有客户,并(b)将结果按last_updated排序(降序)。为了完成(a),我有一个具有country作为PK和location作为SK的GSI,使用location.begins_with查询GSI。
但我无法弄清楚如何完成(b)。我的理解是排序操作通常使用scanIndexForward执行,但我已经在使用GSI进行层次查询了。是否有一种方法可以同时完成(a)和(b)?
谢谢!