我在表中的一个有一列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