1
我最近開始學習DynamoDB和創建表「評論」具有以下屬性(與DynamoDB類型一起):主鍵和GSI設計在DynamoDB
productId - String
username - String
feedbackText - String
lastModifiedDate - Number (I'm storing the UNIX timestamp)
createdDate - Number
active - Number (0/1 value, 1 for all records by default)
以下是我所期望的查詢對這個表運行:
1. Get all reviews for a 'productId'
2. Get all reviews submitted by a 'username' (sorted asc/desc by lastModifiedDate)
3. Get N most recent reviews across products and users (using lastModifiedDate)
爲了能夠運行這些查詢我創建的「評論」表中的下列
現在:
1. A Primary Key with 'productId' as the Hash Key and 'username' as the Range Key
2. A GSI with 'username' as the Hash Key and 'lastModifiedDate' as the Range Key
3. A GSI with 'active' as the Hash Key and 'lastModifiedDate' as the Range Key
最後一個索引有點瑕疵,因爲我只在表中引入了'active'屬性,因此所有記錄的值都可以是'1',我可以將它用作GSI的Hash Key。
我的問題很簡單。我已經閱讀了一些關於DynamoDB的內容,這是我能想到的最好的設計。我想問問是否有更好的主鍵/索引設計,我可以在這裏使用。如果在DynamoDB中有一個概念,我可能錯過了這個特定用例可能會有所幫助。謝謝!