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

时间:2016-11-29 06:24:59

标签: sql postgresql database-design relational-database

让我们说我有一个论坛,我有一个名为"权力的游戏&#34 ;;并将其存储在数据库中。当有人想要访问它时,URL将如下所示:www.someforum.com/topics/game-of-thrones。

搜索时,我可以简单地用空格替换连字符,或者忽略它们,但是对于具有空格和连字符的字符串,它会在单词和连字符的不同排列之间产生歧义(例如" Mother-In-法律问题")。我怎么处理这个?

我想过创造一个" slug"主题表中的列,其中包含主题标题的网址,以及"标题"列将保存用户所期望的空格和连字符的排列...

1 个答案:

答案 0 :(得分:0)

我想我现在找到了你 这样的事情怎么样(只是一个粗略的演示)? -

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'
;