我有一个用户列表。用户可以使用用户名或电子邮件地址登录。
作为azure表存储的初学者,这就是我为快速索引扫描而设计的数据模型。
PartitionKey RowKey Property
users:email jacky@email.com nickname:jack123
users:username jack123 email:jacky@email.com
因此,当用户通过电子邮件登录时,我会在azure表查询中提供PartitionKey eq users:email
。如果是username
,则是Partition eq users:username
。
由于在天蓝色表查询中似乎无法模拟contains
或like
,所以我想知道这是否是为1个用户存储多行数据的正常做法吗? >
答案 0 :(得分:2)
因为似乎不可能在天蓝色中模拟包含或喜欢 表查询,我想知道这是否是正常的存储方法 1个用户的多行数据?因为似乎不可能 模拟包含或喜欢在蓝色表查询中,我想知道这 一种正常的做法是为1个用户存储多行数据?
这是完全有效的做法,实际上是推荐的做法。本质上,您将必须确定可以查询表存储的属性,并以某种方式将它们用作PartitionKey
和RowKey
的组合。
有关更多信息,请参见Guidelines for table design
。通过此链接:
考虑存储实体的重复副本 。表存储很便宜,因此请考虑多次存储同一实体( 不同的键)来启用更有效的查询。