javascript - 为我的服务器设置数据库时要走哪条路
问题描述
我正在开发一个 websocket 实时浏览器游戏(socketio nodejs)并想开始实现我的数据库,并想知道哪种类型的数据库(nosql、sql ..)最适合我的情况。
我打算如何使用它的一个小描述:
我想拥有存储所有选项的游戏室(可以经常更改)
已连接用户及其关联帐户的列表(如果用户是访客,他将没有关联帐户,但如果他这样做,它将与另一个包含一些额外数据(如 lvl 或类似数据)的表链接)
他们喜欢的用户 thema 列表(例如,当游戏开始时,所有用户都可以使用该游戏)所有典型的 themas 都存储在另一个大表中,该表有很多数据一会儿更新。
所以基本上我有一些需要大量快速和并发访问的表,这些表需要经常更新和删除,有些不需要它并且有很多永久数据。
我正在考虑使用 mongodb,但老实说,我不想承诺我没有经验的事情(我确实有 sql 知识)。我需要建议谢谢
解决方案
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。
我希望这会有所帮助,并让您以更清晰的方式了解您想要什么。祝你的项目好运!
推荐阅读
- transactions - IBM db2,SQL 脚本中的事务
- javascript - Typescript在http请求上设置返回类型的正确方法
- python - PyQt5 QWebEngine 对 Javascript 的错误渲染
- python - 我们如何在 sympy 中分离方程较小的分离方程
- wordpress - 首页上的WordPress分页不起作用
- jenkins - 使用“kubectl apply”命令滚动更新
- jenkins - 是否可以为 jenkins github 组织构建设置构建丢弃选项?
- javascript - 如何防止操作覆盖覆盖材料表中的可编辑 onRowAdd 按钮?
- python - 如何替换目录中每个文件中的字符串
- c# - 启用可靠会话时 WCF ContractFilter 不匹配