2011-09-25 95 views
0

我在這裏閱讀了很多,但這是我第一次問一個問題。MySQL/PHP關鍵字數據庫內容關鍵字

我正在開發一個帶有LAMP的網站,它基本上都是關於用戶提交的文章的。我想通過標籤(或關鍵字)將一些文章聯繫在一起,以便我可以向觀衆展示一些相關的內容。

我有一個想法,在文章所在的MySQL數據庫表中創建一個字段,稱爲「標籤」,由逗號分隔的關鍵字列表組成。他們會與文章相關並以某種方式描述它的內容。然而,我發現這不是一個好主意,因爲我不能很好地對此進行索引。

那麼,我該如何去解決這個問題呢?

ps。剛剛看到這個網站右側的小盒子被稱爲「類似問題」,我試圖實現的很多類似...

回答

1

這是一個多對多的關係,可以使用建模包含文章ID外鍵的單獨表格和標籤列。通過向表中添加多行來向文章添加多個標籤。

例如,如果您有兩篇文章,其中:

  • 第一條具有標籤「foo」和「酒吧」和
  • 第二條具有標籤「欄」和「巴茲」

那麼該表可能是這樣的:

article_tags 
article_id tag 
1   foo 
1   bar 
2   bar 
2   baz 

您可以將標籤名稱,即使存儲在一個單獨的表:

tags 
id name 
1 foo 
2 bar 
3 baz 

article_tags 
article_id tag_id 
1   1 
1   2 
2   2 
2   3 
+0

嘿,我明白你的意思,並感謝答覆。但是使用PHP/SQL我怎麼會這樣說:「去數據庫找到匹配'x'字的前五個關鍵字?」 –

+1

您應該查看有關介紹性數據庫編程的其他問題,或者查看互聯網上提供的許多教程之一。 針對您的具體問題,你可能會形成一個查詢,如:$ SQL = 「SELECT * FROM標籤INNER JOIN文章的WHERE tags.name = $ x_word AND tags.article_id = articles.article_id LIMIT 5」 – dar7yl