【发布时间】:2011-06-10 21:36:23
【问题描述】:
我正在尝试弄清楚如何在我的数据库中有效地实现标签。
一种方法是有一个文章表(比如Articles, ArtID int PK, ArtText varchar(max))和一个标签表(比如Tags, TagID int PK, TagTitle varchar(15))。然后我将创建一个连接表来创建文章和标签之间的多对多关系(比如说ArticleTags, ArtID int, TagID int (compound primary key)。
我的第一个问题是编写查询以查找与给定标签关联的所有文章的最佳方法是什么?如果我想返回组合数据,我知道连接,但如果我只想知道哪些文章行与特定标签相关联,那么最有效的查询是什么。在现实生活中,我将需要查找具有多个标签的文章,并且还可以找到与特定标签无关的文章。
我的第二个问题是关于我的 Tags 表是否应该有一个 int PK?使用 TagTitle 作为主键是否更有意义?
【问题讨论】:
标签: sql-server database database-design query-optimization