2009-06-22 71 views
0

有一個用戶創建項目的HTML表單。使用通常的sql查詢來搜索項目。現在,將爲HTML表單上的每個項目提供一個標記字段。因此,在創建項目時,用戶將輸入項目的標籤名稱,並且該項目將與標籤名稱一起創建。用戶將使用此標籤名稱搜索項目。允許通過標籤搜索?

什麼是最好的實現方式?爲每個Item表添加一個標籤列是一個很好的方法嗎?其他可能的選擇是什麼?

回答

0

我相信你會想盡量減少往返數據庫服務器。標籤可能是其中一個感興趣的項目的屬性,並且它是多對多的關係。這是一條很好的路徑,你可以找到更多的信息here

0

如果您希望能夠添加多個標籤,那麼最好的辦法是實施這樣一個表:

item_tag 
     item_id - Integer 
     tag_name - Varchar 

或兩個表:

item_tag 
     item_id 
     tag_id 
tags 
     id 
     name 

使用post_tag表包含哪個標籤與哪個項目相關聯的列表。如果你想搜索文章標籤,那麼你可以做一個

SELECT * FROM `items` LEFT JOIN `item_tag` ON `items`.`id` = `item_tag`.`item_id` WHERE `tag_name` = 'value' 

Here is a post討論實行標籤制度,建議使用三個表的最佳途徑;例如,items,tagsitems_tags