我对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