php - 在 php 中从 mysql 查询 JSON db 对象

标签 php mysql json

所以我有一个应用程序和一个非常烦人的客户,他们经常改变主意,所以我决定将一些数据存储为 JSON 对象。

我有一个匹配系统,我将注册匹配的用户存储为用户 ID 数组的 JSON 对象版本。

我想显示用户已注册的所有匹配项作为我的过滤器选项之一,因此我基本上需要查看该用户的 ID 是否存储在文本类型数据对象中。

我能想到的两种方法是:

  1. 查询每个匹配项并对对象进行 JSON 解码,然后使用 in_array 查看它们是否在匹配项中(我没有这样做)。

  2. 只需使用 LIKE 查询在 JSON 文本中搜索“[userid]”(我就是这样做的)。

有没有更好的方法来做这样的事情?比如 MySQL 是否有更好的内置函数来处理这样的事情?

最佳答案

尝试将用户数据存储在关系数据库(例如 MySQL)中的 JSON 对象中是错误的。您的数据库不是面向对象的,而是关系型的。遵循关系数据库的规则对你很有帮助。您最好构建一个良好的数据库 (DB) 结构并进行准确的 MySQL 查询。

如果您至少将数据库保留在 third normal form 内,您会发现当您的客户改变主意时(一次又一次……一次又一次……)您可以添加和更改用户属性,因为给定表中将保留更少的数据,因此您可以添加和更改小表而不会对系统产生巨大影响。

数据库中的另一个选项是创建一个表,该表具有按 ID、名称和值划分的各种属性。

关于php - 在 php 中从 mysql 查询 JSON db 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8184831/

相关文章:

php - 高级 MySQL 连接。加速查询

PHP/MySQL : If Else condition doesn't work as expected

php - Ruby 类实例变量与 php 属性

php - codeigniter 表单回调值

mysql - 如何使用 group by didmd5 选择 event_type

javascript - 如何使用嵌套表达式查找 JSON 对象?

php - 通过 python 将 JSON 发送到外部 PHP 监听器

PHP MYSQL 输出统一值到同一表列

php - Laravel 组违规

javascript - 将任意 Javascript 数据对象传递给 Node.js C++ 插件