gpt4 book ai didi

mysql - 我应该选择哪个数据库? MySQL 还是 mongoDB?

转载 作者:行者123 更新时间:2023-11-30 00:21:33 24 4
gpt4 key购买 nike

我正在开发一个与 WhatApp 有点熟悉的项目,只是我没有实现聊天功能。

我唯一需要在数据库中存储的是用户信息,该信息不会很大,而且我还需要移动应用程序中的离线数据库,该数据库应与服务器数据库同步。

目前我使用 MySQL 作为我的服务器数据库,并且我正在考虑使用 JSON 来实现移动应用程序和服务器之间的同步,然后我发现 mongoDB 对 JSON 有天然的支持,这让我想知道我是否应该更改为MongoDB。

这是我的问题:

  1. 我应该更改为 mongoDB 还是仍然使用 MySQL?每个用户的数据不会太大,并且对数据的一致性有一定的要求。但 mongoDB 的 JSON 支持有些吸引人。

  2. 我不熟悉同步过程,我做了一些挖掘,看来 JSON 是一个不错的选择,但是我应该将哪些数据放入 JSON 文件中?

最佳答案

实际上,我认为这太宽泛,并且主要吸引基于意见的答案,但无论如何我都会尝试一下,并希望保持客观。

首先,您有两个单独的问题。

  1. 我应该使用什么数据库系统。
  2. 如何在应用程序和服务器之间同步。

第一个问题很容易回答,因为它并不重要。两者都是存储数据的不错选择。 MySQL 成熟且稳定,MongoDB 虽然较新,但有很好的评论,我不知道有任何已知问题会阻止它的使用。因此,选择您认为易于使用的数据库。

现在,我将首先提出一个免责声明,即对于多个实体之间的数据同步,整本书都已编写完毕,而且它毕竟仍然是博士学位的主题。

我建议不要在移动应用程序和数据库之间直接同步,因为这需要将数据库凭据包含在应用程序中。移动应用程序可以并且将会被反编译并提取凭据,这将危及您的整个数据库。因此,您可能需要创建一些 API,首先执行设备/用户身份验证,然后更改数据库。

这已经意味着为此使用 MongoDB 可能是一个坏主意。

现在 JSON 本身只是一种表示具有某种结构的数据的格式,就像 XML 一样。因此,它不是一种同步方法,而是一种传输方法。

对于同步数据,了解事实来源非常重要。如果您有1 device <-> 1 record这很容易,因为设备将成为事实的来源,毕竟唯一发生的突变可能是由设备上的用户完成的。

如果您有n devices <-> 1 record然后它就变得更烦人了。如果您想允许设备在离线时更改状态,您需要采取一些技巧来在设备恢复在线时同步数据。但这可能是一个太复杂且依赖于具体情况的问题,无法回答。

但是,如果您强制设备始终立即将更改传播到数据库,那么数据库将始终包含最新的记录或事实。缺点是应用程序的一部分在离线时将无法运行。

如果离线更新不会更改状态而只是添加新记录,那么您可以在服务器上线时将其推送到服务器。但请记住,您将无法订购这些事件。

关于mysql - 我应该选择哪个数据库? MySQL 还是 mongoDB?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23192247/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com