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