小弟对数据库仅用过简单的增删改查。昨天同事提了个想法,有点懵逼。求各位大佬指点迷津🙏
MySQL
的CONCAT()
函数来拼接字段;where
后面的检索条件应该通过遍历用户输入来拼接,所以需要限制用户输入长度;视图
,数据表更新后还需要手动更新视图?case...when...
计数。vue + element
可以实现用户自定义显示 /隐藏列。烦请各位大佬给点意见,或者可以参考(白嫖)的项目,谢谢!🙏
1
l00t 2020-12-10 10:09:52 +08:00 1
不知道你在说什么…… 你这列的“需求”,完全不清晰。像“4.", 这甚至不是需求。
使用自然语言在所有字段中检索?这是个怎样的场景? “相关性排序”又是个什么东西? |
2
ztxcccc 2020-12-10 10:13:58 +08:00 1
上搜索引擎,Apache Solr
|
3
l00t 2020-12-10 10:14:02 +08:00 1
不考虑那些不清楚的内容,单说字段可能经常增加这点,使用传统关系型数据库的话,一般可以用纵表形式。字段是一条记录,而不是真的表字段。而建的表可以是 ID, 字段名,字段值 这样的形式。
不过如果综合你别的需求来考虑的话,那整个模型就未必合适。 |
4
12tall OP @l00t 非常感谢
`4.` 的话是做网页的时候遇到的一个比较头疼的问题,跟 SQL 无关 我理解的检索是:用户输入一组关键词,去匹配数据表中的所有字段,返回包含全部或几个关键词的记录行 如果某一行包含所有用户输入的关键词,那么它就要被优先显示 |
8
dfzj 2020-12-10 15:02:17 +08:00 1
给这个结构化数据库对应建立一张资源索引表:
CEATE TABLE table1 (id , content TEXT -- 把所有字段内容放入该字段中 , srcId -- 源表 ID) 然后界面上用户输入 关键词,去查出 table1.conent, 得到 srcId, 最终找到目标 |
11
imn1 2020-12-10 15:46:16 +08:00 1
2. google "SQL 全文检索"
3. 考虑 NOSQL,或者 sql+json |
12
whx20202 2020-12-10 16:01:13 +08:00 1
1. 用一个同步工具(订阅 binlog 那种)同步到 elastic search 里。
2. 用 es 查询 |
13
shuax 2020-12-10 16:43:46 +08:00 1
改用 es
|
14
wakzz 2020-12-11 09:27:54 +08:00 1
你这个需求不建议使用 mysql,建议将 mysql 的数据实时同步到 es 后,通过 es 来查询
|