我必须制作一个搜索功能,用户搜索附加到不同文章的标签,例如:PC,健康,时装......等。 我目前的表是这样的:
Tag_id | Tag | Article_id
-----------------------------------
1 | scary | 2
-----------------------------------
2 | daunting | 2
-----------------------------------
3 | chilling | 2
-----------------------------------
4 | creepy | 2
-----------------------------------
5 | scary | 5
-----------------------------------
6 | daunting | 5
-----------------------------------
7 | chilling | 5
-----------------------------------
8 | creepy | 5
正如您所看到的,每个标签都有同义词,必须在每个共享相同标签的文章中重复这些同义词。我的问题是:什么表结构允许重复使用标签(没有重复的标签),同时不能搜索友好。 (不能使用正常的词库,因为标签是短语和俚语)
答案 0 :(得分:1)
你想要三张桌子:
ARTICLE
id (a primary uid)
link (links to the article)
TAG
id (a primary uid)
name (ie 'chilling')
ARTICLETAG
article (a foreign key: a uid that exists in ARTICLE)
tag (a foreign key: a uid that exists in TAG)
每次要标记文章时,都会在ARTICLETAG
中插入一个新行,其中包含您要标记的文章以及要标记它的标记的ID。根据需要为新文章和标签添加到TAG
和ARTICLE
。
答案 1 :(得分:0)
文章表
-id - UNIQUE(自动增量与否,您决定)
- 更多属性......
TAGS TABLE
-id - UNIQUE(自动增量与否,您决定)
-tag
关系表 ARTICLE_TAG表
-article_id
-tag_id
您可以将任意数量的标签与您想要的文章相关联