我知道它正在工作,但我想知道這是一個與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