我知道它正在工作,但我想知道这是一个与PartitionKey和RowKey具有相同字符串的好习惯吗?使用相同的PartitionKey和RowKey
这种场景适用于所有物品都是唯一的单个表格,Customer
表格中每行都有关于一个单一客户的信息。
我的意思是说,例如我会得到这个唯一的客户ID,我想用它来获得PartitionKey + RowKey的记录,所以返回将是快速的和单个项目。
您认为如何?
我知道它正在工作,但我想知道这是一个与PartitionKey和RowKey具有相同字符串的好习惯吗?使用相同的PartitionKey和RowKey
这种场景适用于所有物品都是唯一的单个表格,Customer
表格中每行都有关于一个单一客户的信息。
我的意思是说,例如我会得到这个唯一的客户ID,我想用它来获得PartitionKey + RowKey的记录,所以返回将是快速的和单个项目。
您认为如何?
这一定会让你的顾客快速查找。 RowKey可以是一个空字符串,因此如果您为每个客户都有独特的分区,您在技术上不必使PartitionKey和Rowkey匹配。
几件事情要注意这里:
查看How to get most out of Windows Azure Tables关于选择分区键的文章。你会看到我在这里所说的大部分内容(我从中学到的地方之一)还有更多。
使用一致的字符串ID“0”,因为RowKey与双重PK具有相同的唯一性结果。 PK + 0 = PK + PK。
一个实用的解决方案正在考虑最常见的查询过程。您可以使用PartitionKey中的zip/pocode - 然后使用RowKey中的客户GUID。如果您的客户群均匀分布在全国各地。 PartitionKey不需要PrimaryKey ...
如果我明白你的观点是正确的,那么最好有一个共同的ID(例如GUID)作为分区键,然后行键将包含我唯一的客户ID和在这种情况下,我仍然可以通过partionkey + rowkey获得客户,但也可以使用批次? – user2818430
我不会建议只保留一个PartitionKey(例如'Users'),因为这会破坏整个分区的目的。假设你有100000个用户,并将PartitionKey设置为'Users'和RowKey作为唯一的ID。当您搜索用户时,表服务将不得不扫描那些100000条记录来查找匹配的用户标识。在这种情况下,您最好保留唯一的ID作为PartitionKey。 HTH。 –
不,我只是说你应该知道配料只能用于同一分区的实体。正如Gaurav指出,如果您将所有内容放在同一个分区中,您将对系统的可扩展性产生严重影响。只要您始终知道分区密钥,您为每个分区密钥提供单个客户的建议就是可行的。 – MikeWo