我對NoSQL商店(如Dynamo或Mongo等)的理解是,您應該根據非規範化和創建基於您將執行的查詢創建表的想法。這是在DynamoDB中創建表的正確方法嗎?
我在如何設置我的桌子上掙扎。
我確定了我想運行的查詢。
我翻譯這將是一個普通的SQL查詢到「純英語」
例如,我想運行一個查詢會轉化爲這樣:
「獲得date_x之間拍攝的所有照片和date_y當攝影師約翰下令由得票最多的」
既然不能做表連接,這就是我想出了:
photos
{
name,
url,
photographer,
date_created,
likes,
dislikes,
num_voters,
weighted_score
}
是個是正確的方法?
我喜歡,不喜歡,num_voters和weighted_score的原因是因爲我相信,每當用戶投票的照片,我需要更新「行」,並增加喜歡/不喜歡/ num_voters和重新計算weighted_score(使具有低多的選民高度評價的項目不會影響我的排行榜)
然而,
因爲我申請「過濾器」 - 我想一個鍵/值存儲像迪納摩不我想要的是?
另一方面的問題:比方說,我有一個攝影師表,我想刪除一個攝影師。這是我的責任,然後通過照片和刪除攝影師?再一次,因爲它是非關係的,我假設沒有級聯類型的功能?
由於
非常感謝Stennie! – john 2012-08-05 06:39:06