【问题标题】:Which way to go when setting up a database for my server为我的服务器设置数据库时要走哪条路
【发布时间】:2020-07-27 15:09:25
【问题描述】:

我正在开发一个 websocket 实时浏览器游戏 (socketio nodejs),并想开始实现我的数据库,并想知道哪种类型的数据库(nosql、sql ..)最适合我的情况。

我打算如何使用它的小描述:

  • 我想拥有存储所有选项的游戏室(可以经常更改)

  • 已连接用户及其关联帐户的列表(如果用户是访客,他将没有关联的帐户,但是如果他这样做,它将与另一个包含一些额外数据的表链接,例如 lvl 或类似的东西)

  • 他们喜欢的用户 thema 列表(例如,当游戏开始时,所有用户都可以使用该游戏,所有典型的 thema 都存储在另一个有很多的大表中一段时间内不会更新的数据。

所以基本上我有一些需要大量快速和并发访问的表,这些表会经常更新和删除,而有些则不需要它并且有很多永久数据。

我正在考虑使用 mongodb,但老实说,我不想提交我没有经验的事情(我确实有 sql 知识)。我需要建议谢谢

【问题讨论】:

  • 我会使用 SQL...就像我对任何项目所做的那样:D 请注意,如果您计划执行大量创建/更新/删除操作,则需要正确设置表索引(不要有太多索引),以保持良好的性能。每次插入也会更新索引。如果这个应用程序计划被很多人使用,我建议对如何“正确”设置索引进行小研究。
  • 谢谢,我会查一下。

标签: javascript node.js database server socket.io


【解决方案1】:

TD;LR:我个人会选择 PostgreSQL。

最近,我和你有同样的问题,但唯一不同的是,我并不想建造游戏室。经过一番研究,我确信 PostgreSQL 很棒,适合每个项目。嗯,科技巨头也在使用它,包括 Facebook、Uber、Netflix ...... (https://stackshare.io/postgresql)。它具有可扩展性、易于设置一个数据库、拥有大量教程(包括视频和文章)的优秀社区,而且它还具有可扩展性,因为它支持 JSON,这很棒!

您可以为 Node.js 使用出色的 ORM,例如 TypeORM 或 Sequelize。此外,我建议您看看 GraphQL,这是一个具有订阅(实时操作)的 API。我猜这将是一个 Web 应用程序,我强烈建议您使用 React.js 来实现前端功能,这些功能与 GraphQL 和 Node.js 的交互性很好。最后但同样重要的是,许多开发人员和公司同时使用 MongoDB 和 PostgreSQL 来实现不同的功能和目的。对于用户的表使用 PostgreSQL,对于多个“大”JSON 对象使用 MongoDB。

我希望这对您有所帮助,并让您以更清晰的方式了解您想要什么。祝你的项目好运!

【讨论】:

  • 非常感谢您的回答。我看到了 PostgreSQL,它似乎很适合我的需要,并且有点怀疑我是否应该承诺它,因为回去会占用我很多时间。我会开始阅读它。
  • 我的荣幸!如果您是 PostgreSQL 的初学者,我建议您观看 freeCodeCamp 的教程。我觉得很好,老师很友好(youtube.com/watch?v=qw--VYLpxG4&t=12799s)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-02-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多