【发布时间】:2012-08-04 21:10:04
【问题描述】:
我对 Dynamo 或 Mongo 等 NoSQL 存储的理解是,您应该考虑非规范化并根据您将要执行的查询创建表。
我正在为如何设置我的桌子而苦恼。
我已确定要运行的查询。
我已经将普通的 SQL 查询翻译成“简单的英语”
例如,我想运行的查询会这样翻译:
“获取在 date_x 和 date_y 之间拍摄的所有照片,其中摄影师是 John,按最多票排序”
由于我不能进行表连接,所以我想出了这个:
photos
{
name,
url,
photographer,
date_created,
likes,
dislikes,
num_voters,
weighted_score
}
这是正确的方法吗?
我有喜欢、不喜欢、num_voters 和 weighted_score 的原因是因为我相信,每当用户对照片投票时,我需要更新“行”并增加喜欢/不喜欢/num_voters 并重新计算 weighted_score (这样选民数量少的高评价项目不会影响我的排行榜)
然而,
因为我正在应用“过滤器”——我认为像 Dynamo 这样的键/值存储不是我想要的?
还有一个问题:假设我有一个摄影师表,我想删除一个摄影师。然后我有责任浏览照片并被摄影师删除吗?同样,由于它是非关系型的,我假设没有级联类型特征?
谢谢
【问题讨论】:
标签: mongodb amazon-dynamodb nosql