它是最好的发言权用户ID有一个巨大的表,并存储在DynamoDB与它的一切或者创建拥有大量的表格的超级非规范化的模式?如何最好地建立一个架构在DynamoDB
让我们假设我有一个像Flickr一样的图像共享网站。我想要:
users (userId, email, passwords, names)
images (imageId, userId, filename, size)
comments (commentId, userId, imageId, textOfComment)
这是一个非常规范化的做事方式(据我了解),将3个表。我会根据我需要的来查询它们。
说,如果我有一个帐户及希望得到他们所有的图片:
query = select * from images where userId = @userId
但是DynamoDB似乎并没有这样的工作方式,因为它通过按键partions数据:
用户id ,图像标识,commentsId将钥匙和partion表
我将如何获得特定用户的所有图像?我只是有一张大桌子吗?(这似乎太糟糕了)?或者我应该把imageId作为用户表中的一个集合(如果说一个用户拥有1,000,000个图像,可能会变大)?或者,还有更好的方法?