我有點困惑,如何正確設置輔助索引在DynamoDB。 文檔狀態二級索引是有散列和範圍鍵的表,但在我的情況下,我不需要範圍鍵。在沒有範圍鍵的DynamoDB表上實現唯一二級索引的正確方法是什麼?
這種情況基本上是這樣的。我有一個移動客戶端的列表,將調用我的API。這些客戶端由6個字符的唯一客戶端ID標識。每個客戶端也有一個唯一的設備ID,基本上是一個長的GUID - 用作主鍵很長且不方便。
問題出現在客戶端自己註冊它發送的設備ID(長GUID)在一個註冊請求和服務器生成唯一的clientID(六個字符的唯一ID),它返回給客戶端爲未來的通信。服務器端必須執行的一項檢查是確保請求不是重複的註冊,即deviceID在另一個客戶端ID下的表中尚不存在。
在一個SQL表中,我將clientID作爲主鍵,'d只是在deviceID字段上定義唯一索引,但好像我無法在DynamoDB中這樣做,因爲我只有表上的散列鍵,而不是散列和範圍鍵。我可以做一個查詢來查明是否有一個dupe deviceID在某處,但這似乎需要一個我希望避免的表掃描。
在DynamoDB中設置類似的東西的正確方法是什麼?我是否只在所有行上使用虛擬範圍鍵(如「foo」)並使用本地二級索引?不知何故似乎效率低下。
感謝您閱讀Ankit的證明。 – user1023110