我只是陷入了设计问题。我想为表中的用户记录分配排名。他们在网站上做了一些行动,并根据排行榜给出排名。而我想要的选择可能是前十名,用户位置,今天登录的十大等等。
我找不到将其存储在Azure表中的方法。我想过在blob中存储自定义集合对象(一个排序列表)。
有什么建议吗?
答案 0 :(得分:1)
表实体按PartitionKey,RowKey排序。虽然您可以不断删除和重新创建用户(从而允许您更改PK,RK)以提供正确的顺序,但这似乎是一个坏主意或至少是矫枉过正。相反,我可能会存储您使用的数据计算排名并定期计算和存储排名(如您所说)。我们在工作中做了很多 - 在JSON视图中预先计算数据应该是什么样的,将它存储在blob中,然后让UI直接查询它。诀窍是决定何时重新计算视图。在用户执行会导致重新计算排名的项目之后,我可能会排队一条消息并让工作进程重新计算视图。这可以防止太多工作人员一次尝试更新数据。