Android 构建AWS&x27的最佳方式;用户帐户的DyanomoDB?

Android 构建AWS&x27的最佳方式;用户帐户的DyanomoDB?,android,amazon-web-services,amazon-dynamodb,Android,Amazon Web Services,Amazon Dynamodb,这是来自Android环境的。我正在使用AmazonWebService的sdk构建一个具有基本社交媒体功能的Android应用程序。我需要存储用户、他们的帖子、杂项数据等。。。我正在考虑这样构建它: 一个名为“Users”的大表,其中包含每个用户的一项。然后为每个用户提供一大堆属性,存储他们所有的帖子和杂项数据 但我想听听其他关于我应该如何最好地组织这件事的意见。我基本上没有这方面的经验,所以我忍不住怀疑我做错了 谢谢您可以通过多种方式进行设计。您应该考虑系统的使用模式,以获得一个可靠和可扩展

这是来自Android环境的。我正在使用AmazonWebService的sdk构建一个具有基本社交媒体功能的Android应用程序。我需要存储用户、他们的帖子、杂项数据等。。。我正在考虑这样构建它:

一个名为“Users”的大表,其中包含每个用户的一项。然后为每个用户提供一大堆属性,存储他们所有的帖子和杂项数据

但我想听听其他关于我应该如何最好地组织这件事的意见。我基本上没有这方面的经验,所以我忍不住怀疑我做错了


谢谢

您可以通过多种方式进行设计。您应该考虑系统的使用模式,以获得一个可靠和可扩展的设计。 我不会把帖子和用户信息放在同一张表中。相反,我会有一个用户表,大概是由某种标识符标识的——它可能是用户的电子邮件地址、唯一的帐户id或其他代理唯一密钥。可以在这个表中存储关于用户的元数据。然后我会创建另一个帖子表。文章可能会按用户id进行分区,并按时间戳进行排序。您还可以考虑使用另一个更粗糙的时间属性,例如日期,并创建一个GSI来索引日期和时间,以便能够检索最近的帖子。如果你有很多帖子的话,它的粒度也可以是每小时一次

你应该开始考虑:

  • 你预计会有多少用户?你会有成百上千上百万的用户吗
  • 您希望每天有多少活跃用户
  • 一个典型的用户会发多少帖子
  • 帖子会在一天中传播,还是会聚集在一起
  • 对你来说最重要的方面是什么?快速消息传递/检索?可靠的消息传递/检索?在线/离线消息传递
  • 您是否需要对组帖子(即多个用户在同一线程上协作)的支持

祝你好运

您可以通过多种方式进行设计。您应该考虑系统的使用模式,以获得一个可靠和可扩展的设计。 我不会把帖子和用户信息放在同一张表中。相反,我会有一个用户表,大概是由某种标识符标识的——它可能是用户的电子邮件地址、唯一的帐户id或其他代理唯一密钥。可以在这个表中存储关于用户的元数据。然后我会创建另一个帖子表。文章可能会按用户id进行分区,并按时间戳进行排序。您还可以考虑使用另一个更粗糙的时间属性,例如日期,并创建一个GSI来索引日期和时间,以便能够检索最近的帖子。如果你有很多帖子的话,它的粒度也可以是每小时一次

你应该开始考虑:

  • 你预计会有多少用户?你会有成百上千上百万的用户吗
  • 您希望每天有多少活跃用户
  • 一个典型的用户会发多少帖子
  • 帖子会在一天中传播,还是会聚集在一起
  • 对你来说最重要的方面是什么?快速消息传递/检索?可靠的消息传递/检索?在线/离线消息传递
  • 您是否需要对组帖子(即多个用户在同一线程上协作)的支持

祝你好运

感谢您提供的信息性评论!我现在有很多事情要考虑。我在另一个论坛上问了这个问题,大多数人都建议使用亚马逊的关系数据库服务,而不是DynamoDB数据库。你有什么想法吗?我想你必须开始回答我在回答中提到的那些问题;关系型数据库在某些方面(即复杂的连接;跨多个表的事务)更好,而非关系型(NoSQL)数据库(包括DynamoDB)在其他方面(即水平扩展;高可用性)更好-因此您必须根据您的用例和目标进行选择感谢您提供的信息性评论!我现在有很多事情要考虑。我在另一个论坛上问了这个问题,大多数人都建议使用亚马逊的关系数据库服务,而不是DynamoDB数据库。你有什么想法吗?我想你必须开始回答我在回答中提到的那些问题;关系数据库在某些方面更好(即复杂连接;跨多个表的事务),而非关系(NoSQL)数据库(包括DynamoDB)在其他方面更好(即水平扩展;高可用性)-因此您必须根据您的用例和目标进行选择