为用户帐户构建AWS的DyanomoDB的最佳方法?

时间:2016-08-06 18:32:50

标签: android amazon-web-services amazon-dynamodb

这是来自Android上下文。我使用Amazon Web Service的sdk构建了一个具有基本社交媒体功能的Android应用程序。我需要存储用户,他们的帖子,misc数据等等......我想要像这样构建它:

一个大表叫做#34;用户"其中包含每个用户的项目。然后为每个用户存储大量属性,用于存储所有帖子和misc数据。

但是我很想听听关于如何最好地构建这个东西的其他意见。我基本上没有这种事情的经验,所以我无法帮助,但怀疑我犯了这个错误。

由于

1 个答案:

答案 0 :(得分:2)

您可以采用多种方式进行设计。您应该考虑系统的使用模式,以获得可靠且可扩展的设计。

我不会在同一个表中将帖子与用户信息混在一起。相反,我会有一个用户表,可能是由某种标识符标识的 - 它可能是用户的电子邮件地址,唯一的帐户ID或其他一些代理唯一密钥。可以在此表中存储有关用户的元数据。然后我会创建另一个帖子表。帖子可能按用户ID分区,并按时间戳排序。您还可以考虑使用另一个更粗略的时间属性,例如日期,并创建一个GSI来按日期和时间索引帖子,以便能够检索最近的帖子。如果你有很多帖子,这个粒度也可能是每小时一次。

你应该开始考虑:

  • 您期望拥有多少用户 - 您将拥有数百,数千,数百万
  • 您希望拥有多少每日活跃用户?
  • 典型用户会发多少帖子?
  • 会在一天之内传播帖子,还是将它们聚集在一起
  • 对你来说最重要的方面是什么?快速邮件传递/检索?可靠的消息传递/检索?在线/离线消息传递?
  • 您是否需要支持群组帖子(即多个用户在同一个帖子上进行协作)?
祝你好运!