【发布时间】:2016-03-08 08:38:00
【问题描述】:
最好是通过 UserId 拥有一个巨大的表并将所有内容存储在 DynamoDB 中,还是创建一个包含大量表的超级非规范化架构?
假设我有一个像 Flickr 这样的图像共享网站。我想要:
users (userId, email, passwords, names)
images (imageId, userId, filename, size)
comments (commentId, userId, imageId, textOfComment)
以上是一种非常规范的做事方式(据我所知),将是 3 个表。我会根据我的需要查询他们。
假设我有一个 userId 并想获取他们的所有图片:
query = select * from images where userId = @userId
但 DynamoDB 似乎并没有以这种方式工作,因为它通过键对数据进行分区:
userId、imageId、cmetsId 将是表的键和分区
如何获取特定用户的所有图像?我只有一张大桌子吗(这看起来很不对劲)?或者我应该将 imageId 作为一组放在 users 表中(如果说一个用户有 1,000,000 张图像,它可能会变大)?还是有更好的办法?
【问题讨论】:
标签: javascript node.js amazon-web-services amazon-dynamodb nosql