我在表中的一個有一列VARCHAR(70)其中,I存儲空間分隔標籤:SQL列搜索問題(SQL Server 2005中)
Id Tags
1 Baby Kids Learning Alphabets
2 Kids Baby
3 Comedy Movie Fun
100 Kids Learning Alphabets
500 Kids Baby
我執行搜索的列: 獲取所有的IDS我們可以在標籤中添加嬰兒兒童和字母
我可以在這裏做標籤,如'%Baby%'或標籤'%Kids%'或標籤'Like Alphabets%' 選擇查詢時,的行。但添加\刪除\編輯總是非常快。
所以我添加了名爲哪裏存儲標記字母像標籤另一個表:
Tag Id
Alphabets 1
Alphabets 100
Baby 1
Baby 2
Baby 500
Comedy 3
Kids 1
這使得搜索速度更快,購買更新\刪除\插入痛苦。
我的設計是否適合未來的發展?
您應該如何設計此標籤列?
感謝您閱讀
編輯: * 所有我想拉是相關的ID列表。基本上找到所有具有給定標籤或標籤的ID。就像這個問題一樣,你會在右邊看到「相關問題」。這就是我想要得到的。 *
我有所有的問題的答案。將會有數百萬個標籤。只要考慮它是一個公共分享網站。如果有1000萬行,每個有5個標籤,那麼就是50M標籤。所以噸標籤將在那裏。我必須選擇給我所有的ID,我們有字母和學習 – kheya 2011-03-11 00:56:46
這聽起來像標籤可能會成爲你的瓶頸,所以他們應該快。出於這個原因,你最近的做法似乎更好。您還可以考慮在標籤表上保留一個緩存計數,以防需要回答「該標籤使用了多少次?」的問題。這當然是插入/更新/刪除的另一件事情,但如果您希望在每個頁面視圖上顯示標籤雲,從長遠來看可能會帶來巨大的收益。 – skaz 2011-03-11 01:03:03