设计数据库来收集数字产品的统计数据

问题描述 投票:0回答:2

我正在为大型用户社区(超过 200 万)构建数字产品,使用 Express + GraphQL 作为 API 服务器,使用 React + Apollo 作为 Web 应用程序。然后,当 Web 部件完成时,我将使用 React Native 构建移动应用程序。

现在我正在努力思考如何开发将收集平台中用户生成内容的所有统计数据的部分。为了简化事情,假设我必须记录:

  • 每篇文章的独特用户视图
  • 每条的总观看次数 文章
  • 访问每个用户个人资料

对于那些有过开发此类数据收集系统经验的人,我有几个问题。

我该如何记录原始数据? 我应该在数据库中创建一种日志,然后根据我的需要使用它来生成聚合数据吗?

类似(文章视图示例):

{
    'user_id' : String,
    'article_id' : String,
    'date' : Date,
}

或者我应该使用不同的方法?您建议使用哪个数据库?现在我正在考虑使用 MongoDb,因为我已经在应用程序的其余部分使用它了。

database database-design database-schema usage-statistics
2个回答
0
投票

确实没有单一的“正确”解决方案,但可以选择一些方法。我想建议在我的几个项目中使用的组合方法:将数据最重要(且可查询)的部分存储为结构化数据,但也将原始数据存储为半结构化数据。像 SQL Server(速度更快,但免费版本有限)或 PostgreSQL(速度较慢,但可能足够)这样的 DBMS 可以完成这项工作。 您可以查看我的书中的“半结构化数据和高负载”章节了解更多详细信息。


0
投票

为您的数字产品提供令人印象深刻的技术堆栈选择!使用 Express + GraphQL、React + Apollo 并计划使用 React Native 进行扩展的方法体现了深思熟虑的开发策略。考虑到您的数据跟踪挑战,请确保将分析无缝集成到您的系统中。如果您在改善用户体验或优化数字产品设计以获得最大影响方面需要帮助,请考虑探索“数字产品设计服务”,以获得提高用户参与度和满意度的整体方法。祝您的项目顺利!

© www.soinside.com 2019 - 2024. All rights reserved.