0

我必须创建一个搜索功能,用户搜索附加到不同文章的标签,例如: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

如您所见,每个标签都有同义词,必须在每篇共享相同标签的文章中重复。我的问题是:什么表结构允许标签被重用(没有重复的标签),同时搜索不友好。(不能使用正常的词库,因为标签是短语和俚语)

4

2 回答 2

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

于 2012-06-06T15:44:02.890 回答
0

文章表

-id -- UNIQUE(是否自动递增,由您决定)

-更多属性...

标签表

-id -- UNIQUE(是否自动递增,由您决定)

-标签

关系表 ARTICLE_TAG TABLE

-article_id

-tag_id

您可以将尽可能多的标签与您想要的文章相关联

于 2012-06-06T15:49:20.943 回答