sql - 如何在 postgresql 中存储和搜索连字符/非连字符的 url 名称?

标签 sql postgresql database-design relational-database

假设我有一个论坛,并且有一个主题叫做“权力的游戏”;并以这种方式存储在数据库中。当有人想要访问它时,URL 将类似于:www.someforum.com/topics/game-of-thrones。

搜索时,我可以简单地用空格替换连字符,或者忽略它们,但这会在单词和连字符的不同排列之间产生歧义,对于同时具有空格和连字符的字符串(例如“Mother-In-Law Issues”) ).我该如何处理?

我想在主题表中创建一个“slug”列,其中包含主题标题的 url,“标题”列将按照用户的意图保存空格和连字符的排列...

最佳答案

我想我现在明白你了。
像这样的东西怎么样(只是一个粗略的演示)? -

create table url (url_id int primary key,url varchar(1000));
insert into  url (url_id,url) values (1,'www.someforum.com/topics/game-of-thrones');

create table search_term (search_term varchar(1000),url_id int references url(url_id));
insert into search_term values ('game of thrones',1),('GOT',1)

select  u.url

from            search_term     as st

        join    url             as u

        on      u.url_id        =
                st.url_id

where   st.search_term = 'GOT'
;

关于sql - 如何在 postgresql 中存储和搜索连字符/非连字符的 url 名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40859086/

相关文章:

java - PostgreSQL - 安装 JDBC 驱动程序

postgresql - 在批处理文件中运行命令

mysql - MySQL 字段上的索引未按预期工作(innodb)

mysql - 数据库设计 : dating-site-like application?

mysql - 从另一个表更新多次

Javascript 关系数据库

php - 在 PHP 中使用 PGSQL

sql - 从应用程序向表添加新列时的数据库设计问题

javascript - Java/Javascript -> 多个用户在同一个 sql 数据源上工作,该数据源必须在前端保持一致

sql - 在 TEXT 列中搜索空格时,CHARINDEX 始终返回 0