2013-07-23 23 views
0

我正在嘗試爲我正在處理的項目編寫邀請系統。我打算給出一個「給我們你的電子郵件地址,我們會在你準備好時給你一個測試邀請」類型的東西。我試圖弄清楚如何設計一個DynamoDB表,以便我可以查詢尚未收到邀請的第一個x用戶。如何在DynamoDB中存儲邀請請求?

我正在考慮創建不得不像下面列的表:

  • 電子郵件
  • 日期
  • 滿足(布爾)

我能做到這一點與一些DynamoDB中的哈希鍵,範圍鍵和二級索引的組合?或者這是更適合SQL數據庫的東西嗎? SQL查詢將如下所示:

SELECT email 
FROM invite_request 
WHERE fulfilled = 0 
ORDER BY date 
LIMIT 50; 

回答

0

這裏最好的選擇是使用散列鍵作爲Fullfilled或Unfullfilled。這樣你可以使用比掃描便宜得多的查詢方法。所以,你的記錄將是這樣的:

:HASH_KEY =>布爾:Range_key =>日期時間,屬性=> [電子郵件=>值]

採用這種結構可以查詢某個日期範圍內的所有未完成的電子郵件並限制結果。希望這可以幫助。如果您希望以後可以更多地訪問這些信息,則可能需要將SimpleDB作爲一個更好的選項,但如果僅將此功能用於單個功能,則Dynamo是一個很好的選擇。