我正在寻找在我的ASP.NET网站上实现标签。在查看了几个算法后,我倾向于使用包含一个或多个标记字的几个数据库列。然后,我将使用全文搜索来查找具有指定标记的行。
除了一件事之外,所有这些看起来都很简单:我需要能够生成可用标签列表,用户可以从中选择。
我知道我可以编写一个C#程序来构建可用标记列表,然后每周左右运行一次,但我只是想知道是否有任何SQL方法可以更有效地执行此类操作。
另外,我不禁注意到,无论如何,这些词都会被提取为构建全文索引的一部分。我不认为有任何方法可以访问这些信息吗?
答案 0 :(得分:1)
为什么不对与标记项目表具有多对多关系的标记使用单独的表? 我的意思是这样的:
--Articles
ArticleId
Text
--Tags
TagId
Name
--TagsToArticles
ArticleRef
TagRef
答案 1 :(得分:1)
这不是我选择构建这个但是回答实际问题的方式......
在SQL Server 2008中,您可以查询sys.dm_fts_index_keywords
和sys.dm_fts_index_keywords_by_document
table valued functions以获取所需信息。