无法为我的用例选择数据库。任何 help/insight 将不胜感激?

Trouble picking a DB for my use case. Any help/insight would be appreaciated?

我对设计自己的全栈项目有点陌生,但我正在设计一个小应用程序供自己学习,我在其中存储用户的举重数据,他们可以在网络应用程序中输入和查看这些数据。

最终,我想扩展到用户能够查看、分享、喜欢等其他人的进步(有点像 Strava/Nike+运行 提升俱乐部)- 什么样的DB 是一个不错的起点吗?

目前,这是一种投资组合应用程序。显然,如果我决定扩大规模,我可以改变并迁移到更好的替代方案。那么 NoSQL 或 RDBMS 能正常工作吗?如果是这样,cool/relevant 可以与哪一个一起工作?我应该考虑什么?

我应该提一下,我正在使用 React JS 和 Next JS 作为我的前端框架,同时在后台使用 Node JS 和 Express JS。可能有点矫枉过正,但学起来很酷!

取决于你想学什么。 RDBMS无处不在 我建议你看看 PostgreSQL,它有一组很棒的功能,你几乎可以用它做任何事情,而且性能很好。

但如果您对 NoSql 更感兴趣,那就去吧。 如果您想在用户之间实现更复杂的关系,图形数据库将是一个不错的选择。

出于学习目的,通常最好不要过度分析,而只是开始工作,剩下的就是经验。

如果这是您的第一个全栈应用程序,那么可能会先专注于学习,然后再专注于世界统治 scale-up/out:)(我完全同意@Hans 所说的)。

NoSQL 和关系数据库方法不同,适用于不同的用例,因此如果您想要最合适的方法,我建议您先研究这些差异,然后将您学到的知识应用到您认为最好的解决方案中。

我还建议您在数据库和您的逻辑之间放置某种 dependency inversion (DI),这样您就可以交换不同的数据库,而不会过多地影响您的应用程序的其余部分。您从这样的项目中获得的最大收获之一与其说是最初的设计和构建,不如说是如何处理您以后想要进行的更改。进行重要的系统更改是测试您的体系结构的好方法 :) 适当的 DI 将在这里为您提供大量帮助。

我个人认为 SQLite 是业余应用程序的绝佳选择 - 它是免费的,有很好的文档和强大的用户社区,您将能够使用它来实现关系数据库和 NoSQL 数据库。