【发布时间】: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