2012-08-15 79 views
0

當前我使用逗號「,」將標籤保存爲文本,當我需要它們處理和使用某處時,我需要將字符串爆炸,例如「美國,加拿大,犯罪,多倫多,音樂,落」。這樣做標籤的使用逗號在db中保存標籤的更好方法是什麼?

我就在想,如果有什麼更好的方法(更少的資源和耗時型),或者這是每個人都使用的唯一解決方案。

編輯: 我有一個小項目,沒有管理員標籤管理。我不需要爲db中的標籤設置三個表格。我只是尋找一些更聰明的解決方案,如何保存和爆炸數據庫中保存的字符串標籤。

+2

以前問:你怎麼建議實施標籤](http://stackoverflow.com/questions/20856/how-do-you-recommend-implementing-tags-or-tagging)。 – DCoder 2012-08-15 18:19:09

+2

逗號永遠不會保存在數據庫中... – Esailija 2012-08-15 18:25:54

+0

如果您有一列,那麼您的建議是什麼?我有一個簡單的博客,不需要三個表格來標記標籤。 – Derfder 2012-08-15 18:27:18

回答

2

使用三表法,真的!真的真的!

否則,您將如何查詢帶有「usa」標籤的物品,而不會獲取標記爲「可用」的物品? LIKE %usa%將同時返回。響應 http://www.pui.ch/phred/archives/2005/04/tags-database-schemas.html

編輯評論:

的討論在DB執行代碼中看到這三種方法

逗號,逗號,逗號......

逗號不會幫助不會幫助。示例標籤字段:culture,usa。你將如何LIKE這?

你可以說是保存格式標籤:,culture,usa,(說明並用逗號結尾)。

Imho會帶來一些特殊情況,它最終會變得更復雜,三表方法。

+0

逗號,逗號,逗號... – Derfder 2012-08-15 18:55:52

+0

我在多個地方看到人們建議三表解決方案。爲什麼三不夠兩?說一個名爲articles的表和一個名爲tags的表。文章包括id,主題和作者。標籤包括ID,標籤和articleId。這可能是一個問題嗎? – 2012-08-15 19:13:41

+0

@Oskwish因爲只有兩張桌子,你只有一對多的關係。標籤只能指向一篇文章。 – 2012-08-15 19:17:19

0

假設標籤相關的一些項目(用戶,博客等),有一個簡單的方法來做到這一點

Table_Tags 
{ 
    tag_id:index for the table entries, 
    item_id, 
    tag_code: usa, 
    source: app_system, comment, fb, twitter etc 
    <other audit fields> 
} 

在處理物品/填充項目,該標籤可以是人口也是如此。

希望對您有所幫助

相關問題