2011-08-10 22 views
0

所以我想建立一個網站,需要使用標籤(你知道,輸入描述此頁面的關鍵字)。我們 - 我的團隊 - 試圖找出哪個方法(哪個方向)是最快的方式來存儲標籤:標籤和MySQL - 速度和可用性

  1. 在相關SQL表4個單獨的列(考慮到我們是在4限制的標籤,這個保險業監督完全可行的解決方案)
  2. 1列這是一個逗號分隔的列表的標籤(然後我們可以選擇陳GE的極限)

本質上講,我們想知道哪種方式速度更快,考慮到我們將需要能夠做標記如下:

  • 搜索單個標籤,或多個標籤
  • 在搜索只匹配完全匹配(即標籤「卡車」不應與標籤「救火車」)
  • 塊標記(即用戶可以搜索「景觀-waterfall」)

謝謝你的任何建議。

P.s.我知道this post,不,它根本沒有幫助

回答

1

假設你有一個Foo表與你想要標記的主要內容,我建議你添加一個標記表。標籤有一個ID,標籤字符串,也可能是一個描述字段,您可以在其中描述標籤的實際含義。

然後創建一個名爲FooTag的連接表,它具有一個主鍵ID列,您正在標記的Foo記錄的ID以及您爲其添加標記的標記的ID。與Foo的外鍵關係和完整性的標籤。

現在您可以一次找到1到N個標籤的所有記錄,您可以找到Foo標記的所有標籤,等等。每個Foo你並不限於四個標籤。而且您不必在任何查詢中指定四個不同的列來找出正在使用的標籤。