我正在为庞大的用户社区(200万以上)构建数字产品,使用Express + GraphQL作为API服务器,并使用React + Apollo作为Web应用程序。然后,当Web部件完成时,我将使用React Native构建移动应用程序。
现在,我正在努力思考如何开发该部分,该部分将收集平台中用户生成的内容的所有统计信息。为简化起见,假设我必须记录:
对于那些以前在开发此类系统中收集数据的经验的人,我有两个问题。
我应该如何记录原始数据? 我是否应该在数据库中创建一种日志,然后根据需要使用该日志生成聚合数据?
类似的东西(文章查看示例):
{
'user_id' : String,
'article_id' : String,
'date' : Date,
}
还是应该使用其他方法?您建议使用哪个数据库?现在,我正在考虑使用MongoDb,因为我已经在其他应用程序中使用了它。
答案 0 :(得分:0)
实际上,没有单一的“正确”解决方案,但可以选择某些方法。我想建议在我的几个项目中使用的组合方法:将数据的最重要(和可查询)部分存储为结构化的,但也将原始数据存储为半结构化的。诸如SQL Server(速度更快,但仅限于免费版)或PostgreSQL(速度较慢,但可能就足够了)之类的DBMS可以胜任。 您可以查看my book中的“半结构化数据和高负载”一章以获取更多详细信息。