|
|
1
1
您使用移动服务的事实改变了一切。对不起,我一开始读你的帖子时没有注意到。 Mobile Services使用的默认数据存储是SQL Server,它允许对特定表进行多重索引。 在这种情况下,我建议使用以下数据模式:
假设我们有一个Id为1的事件,用户Id为User1和User2的用户正在参与。 您将在“事件”表中有以下记录:
在EventMembers表中,您将有两条记录:
因为eventid和userid都是索引列,所以可以查询表以检查哪些用户参与了事件以及特定用户参与了哪些事件。 |
|
|
2
1
正如您可能知道的那样,Azure表存储不是关系型的,不允许除主集群(readpartitionkey和rowkey)之外的任何索引。 如果要通过在filter子句中包含字段来查询表,则该字段必须是partitionkey或partitionkey与rowkey。(事实上,您可以通过其他字段进行过滤,但在性能方面的结果将是灾难性的)。 在您的情况下,我建议创建两个表:
向事件添加/删除成员时,需要同时写入两个表。 如果要按成员进行筛选,请查询Members表。如果要按事件id进行筛选,请查询event表。 我知道,这听起来像是浪费存储空间和重复信息,但这是为可扩展性和性能付出的代价。使用关系数据库会容易得多,但不会受益于Azure表存储提供的几乎无限的可扩展性。 当做 安德莉亚 |
|
|
trailmax · 设置Azure存储操作超时 8 年前 |
|
|
Holf · 我应该将主键拆分为分区键和行键组件吗? 8 年前 |
|
|
Thomas · 从Azure表存储读取奇怪的JSON结构 8 年前 |
|
Joe Enos · Azure表存储表是否保证按分区/行排序? 8 年前 |
|
|
A. Vindya · 如何删除Azure表中的所有实体? 8 年前 |
|
|
hdev · 如何使用Azure表存储进行大量查找 8 年前 |
|
serge · ASP中的表存储与DBContext。净核心 8 年前 |
|
|
Rich · Azure表存储查询性能 8 年前 |