关系数据库与非关系数据库 - 体育结果和模式



我希望将一些历史体育成绩整合到一个数据库中,以便在未来构建应用程序和可视化时查询它们。

我对这一领域的理解使我相信我可以采用非关系方法(如亚马逊的DynamoDB(,这样我就不必随着数据大小和查询的增长而考虑数据库资源、大小等。

然后,我计划使用AmazonLambda来处理数据导入和对传入查询的响应。

我的两个问题是:

  • 这种方法有效吗
  • 非关系模式会是什么样子

为了帮助解决第二个问题,如果这是一个关系数据库,那么表的样子应该是这样的。

  • 事件
  • 竞赛(存储结果和相关字段的位置(
  • 运动员
  • 团队

如果您的查询将有很多到这些表的联接,那么关系数据库将是首选。虽然可以使用DynamoDB,但加入这些表会很困难。DynamoDB的一个特性是索引,这可能会让开发人员感到困难。您必须使用哈希键进行搜索。所以你在选择索引时必须小心。

然而,如果数据就像查找一样,例如比赛ID 123,获胜者是运动员a。DynamoDB将蓬勃发展,因为使用它有好处(可扩展性、最低管理等(

就我个人而言,我不喜欢dynamoDB在列出一些东西时(使用搜索、分页等(。当然,你可以建立一个搜索索引,但对于更简单的应用程序,这将是一种过度的做法。

备选方案

如果您只对构建数据的可视化和聚合感兴趣,那么可以使用红移或S3来存储数据。稍后运行一些聚合函数。然后将聚合保存到dynamodb或rds中。

我认为dynamodb和RDS数据库只供最终用户查询和使用。

最新更新