将用户数据存储在服务器上的 JSON 个文件中
Storing user data in JSON files on server
我正在构建一个在后端使用 PHP 和 MySQL 的 Web 应用程序。我想存储一些用户数据——基本上是一组 JSON 格式的对象,详细说明了应用程序的用户 "favorites" 信息。我不想将此 JSON 数据存储在我的用户数据库 table 的单个 MySQL 字段中,因为它看起来效率不高。
因此,我正在考虑将 JSON 数据存储在服务器上的一个平面文件中,该文件具有一个唯一标识符,我可以使用该标识符来了解该文件与哪个用户相关联。我的问题是:对于 10,000 名以上的用户,这是否是一个可扩展的解决方案?
这可能会给您带来很多麻烦,无论是在技术方面还是在安全方面。不,它的可扩展性不是很好。想想它会带来的问题:当你需要添加一个服务器时会发生什么?您将如何同步文件?如果您想做一些涉及多个用户的事情,比如查看有多少人将 XYZ 列为最爱怎么办?
更好的选择是执行以下操作之一:
- 规范化您的数据库(无论如何都要执行此部分)并将收藏夹放入自己的table 或
- 将收藏夹保存在 JSON 列中(可能是错误的答案,但在某些情况下有意义)
如果您担心速度,可以使用 Redis、memcached 或其他系统实现一些缓存。但是还没有这样做——这是不成熟的优化。需要的时候去做。
我正在构建一个在后端使用 PHP 和 MySQL 的 Web 应用程序。我想存储一些用户数据——基本上是一组 JSON 格式的对象,详细说明了应用程序的用户 "favorites" 信息。我不想将此 JSON 数据存储在我的用户数据库 table 的单个 MySQL 字段中,因为它看起来效率不高。
因此,我正在考虑将 JSON 数据存储在服务器上的一个平面文件中,该文件具有一个唯一标识符,我可以使用该标识符来了解该文件与哪个用户相关联。我的问题是:对于 10,000 名以上的用户,这是否是一个可扩展的解决方案?
这可能会给您带来很多麻烦,无论是在技术方面还是在安全方面。不,它的可扩展性不是很好。想想它会带来的问题:当你需要添加一个服务器时会发生什么?您将如何同步文件?如果您想做一些涉及多个用户的事情,比如查看有多少人将 XYZ 列为最爱怎么办?
更好的选择是执行以下操作之一:
- 规范化您的数据库(无论如何都要执行此部分)并将收藏夹放入自己的table 或
- 将收藏夹保存在 JSON 列中(可能是错误的答案,但在某些情况下有意义)
如果您担心速度,可以使用 Redis、memcached 或其他系统实现一些缓存。但是还没有这样做——这是不成熟的优化。需要的时候去做。