将用户数据存储在 json 文件中有什么问题?



关于这个问题的所有答案都假设您将所有用户数据存储在一个大文件中-因此他们认为这太慢了。

假设我有成千上万的用户,并将他们的数据以JSON格式存储在单独的文件中(我目前正在这样做),这样做的缺点是什么-与建立一个像Postgresql这样的适当数据库相反-这似乎是多余的。

在我当前的设置中,速度非常快,但建议我不要这样做。

由于每个用户都有自己独立的文件,因此不存在数百人同时写入文件的问题(隔离)。

也许这只对拥有数百万用户的网站有影响?

没有绝对是对还是错

如果您永远不需要处理对同一记录(文件)的并发访问,或者您不需要搜索记录或扩展到多个服务器,那么解决方案很好,甚至比访问数据库更快。

我只建议正确转义用户提供的数据,如JSON

在大多数系统中,用户不仅仅需要存在,他们还必须做一些事情。这些东西通常会在数据库中表示。所以你希望用户与他们交互的事物存在于同一个系统中。

如果json文件写了一半,系统崩溃(例如电源故障),会发生什么?您是否会为该用户留下一个破碎的JSON文件?对于数据库,这应该自动处理(您可以找到旧记录或新记录,而不是一些截断或混杂)。如果您滚动自己的数据库,您将不得不采取一些方法来验证您以安全的方式执行此操作。

你如何命名你的用户文件?通过用户名?如果不同的人有相同的名字呢?如果他们的名字有不能在文件名中表示的字符怎么办?通过你指定的账号?如果他们忘记了自己的账号,需要用自己的名字来查找怎么办?然后,您是否需要读取和解析每个用户文件以识别正确的用户文件?并不是说数据库会神奇地让这个免费,但至少有了数据库,你可以先创建和实现一个索引。

你基本上是在从头开始重新实现一个数据库系统,每次一个功能,当你发现需要该功能时。你当然可以做到。但为什么不使用一个已经存在的呢?

由于每个用户都有自己独立的文件,因此不存在数百人同时写入文件的问题(隔离)。

如果一个人同时从两个不同的浏览器(或选项卡)写入一个文件怎么办?

最新更新