【问题标题】:Codeigniter - filtering json data by user requestCodeigniter - 按用户请求过滤 json 数据
【发布时间】:2020-10-27 17:04:49
【问题描述】:

所以,我有一个表 ($data),其中包含通过选择查询获取的 JSON 记录。

例如:

"data": {
        "id": "1",
        "technology_name": "First",
        "technology_info": "Something about first rec",
        "created_at": null,
        "updated_at": null
    },
    {
        "id": "2",
        "technology_name": "Second",
        "technology_info": "Something about second rec",
        "created_at": null,
        "updated_at": null  
    }
}
    ...

现在我需要使用“like”按用户请求按列(技术名称)创建过滤器,类似于

select * from "data" where technology_name = '%css%'; 

可以使用 CodeIgniter/PHP 代码和 JSON 文件来做到这一点,还是有更好的方法来做到这一点?你能给我一些建议如何解决吗?

【问题讨论】:

  • 理想情况下,您不应将 JSON 数据存储在关系数据库中。搜索和排序会很慢而且很困难。要么将表和关系用作 SQL 数据库,要么切换到像 MongoDB 这样的 NoSQL 数据库,您可以在其中直接处理类似 JSON 的数据。
  • 问题是我需要用json类型来做这个。
  • @MrCode 很多数据库系统都对 JSON 有一流的支持,包括索引等。不幸的是,Firebird 不是其中之一。
  • 它不仅仅是对额外语言的支持(XML、JSON、XML/Binary、EBML、YAML,......接下来是什么?),还需要一个自定义程序来转换从自定义 JSON 结构到自定义 DSQL select... where 子句。要么在 PSQL Stored Procedure 和 execute statement 中进行,要么设计另一种目标有限的转换语言,如 CSS 或 XSLT,但用于 JSON。坦率地说,这里的 RDBMS 似乎被滥用了,因为它强制具有通常属于应用程序服务器层的功能。为什么不直接使用任何 HTTP/REST 框架?
  • 究竟如何将此 JSON 存储在 Firebird 数据库中?

标签: php sql codeigniter firebird


【解决方案1】:

我认为我拼错了我的问题。 我能够找到正确的解决方案。

因此,我修改了我的脚本,该脚本以 JSON 表示形式返回响应,其中包含一些指令,这些指令通过获取用户请求参数在 WHERE 中选择数据。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-11-13
    • 2021-03-24
    • 1970-01-01
    • 1970-01-01
    • 2014-04-14
    • 1970-01-01
    • 2020-11-04
    相关资源
    最近更新 更多