2011-03-01 40 views
11

想知道如何我可以創建一個標記系統在PHP和MySQL數據庫,我最初的想法是在表中創建一個行中存儲的文章,命名標籤,並列出標籤由逗號分隔,但我不是當然,我可以創建一個查詢匹配標籤的查詢,我不希望每次有人點擊標籤時都要查詢每篇文章。誰能幫忙?我如何創建一個使用php和mysql的標記系統?

+5

我建議在「數據庫規範化」讀了。一個好的開始將是http://en.wikipedia.org/wiki/Database_normalization。 – 2011-03-01 21:06:20

回答

30

你描述的許多一對多的關係文章和標籤。您希望使用中間聯結表來解決該關係。

enter image description here

現在,找到一個選擇的標籤相匹配的所有文章:

SELECT a.article_title 
    FROM Tag t 
     INNER JOIN Article_Tag_Xref atx 
      ON t.tag_id = atx.tag_id 
     INNER JOIN Article a 
      ON atx.article_id = a.article_id 
    WHERE t.tag_name = 'SelectedTagName' 
+0

這看起來棒極了,生病得檢查一下。謝謝! – mcbeav 2011-03-01 23:30:21

2

tbl_articles有條款ArticleID等

tbl_tags有標籤識別等

tbl_taggedarticles有taggedArticleID和articleID,標籤識別

SELECT articleID FROM tbl_taggedarticles WHERE tagID = "searchedID"