我即將創建我的第一個dynamodb表,並且無法找到合適的解決方案來模擬我的需求。這聽起來很基本,但可能我的大腦仍然過多進入關係數據庫領域。使用dynamodb獲取正確的數據模型
我想要做類似這樣的店的東西:
用戶可以購買產品(一次或多次)。我想存儲爲username
,product_id
我以後需要查詢的唯一的事情是:
- 該產品已通過用戶購買
X
- 多少次被他們購買
首先,我考慮過擁有兩個屬性的項目:username
和product_id
。但我不能用username
作爲主鍵(用戶可購買一次以上),我也不能用戶username
+ product_id
(用戶可以購買一個產品多次)
現在我會去爲username
,product_id
,counter
和以username
+ product_id
作爲主鍵。但是,我總是需要首先檢查產品是否已經購買並更新,否則創建一個新條目。要獲取用戶的所有產品,我將在username
上創建一個全局二級索引。
但是,我不太確定這是否正確。任何反饋都會很棒!
感謝您分享您的想法!不幸的是,在我的情況下沒有可用的訂單ID。由於我唯一的要求就是上面的要求,所以我發現了一種更簡單的方法來模擬它:作爲主鍵的「用戶名」和作爲所有已購買產品的列表的「product_ids」。 – linqu 2015-03-13 14:34:48
garnaat是對的。如果你沒有訂單號,那還是可以的。只需使用用戶名作爲主鍵和product_id作爲範圍鍵即可。 – 2015-03-14 22:15:03