T-SQL标记数据库体系结构设计?
设想
我正在建立一个包含一系列不同表的数据库。这些由COMMENTS表,BLOGS表和ARTICLES表组成。我希望能够向每个表中添加新项目,并使用0到5个标签对其进行标记,以帮助用户更轻松地搜索相关的特定信息。
有关建筑的初步想法
我最初的想法是拥有一个集中的TAGS表。该表将使用TagID字段和TagName字段列出所有可用标签。由于每个项目可以有很多标签,并且每个标签可以有很多项目,因此我需要在每个项目表和TAGS表之间建立多对多关系。
例如:
许多注释可以具有许多标签。许多标签可以有许多评论。
许多文章可以具有许多标签。许多标签可以包含许多文章。
等等.....
当前的理解
从以前的经验中,我了解到在T-
SQL中实现此结构的一种方法是在COMMENTS表和TAG表之间有一个关联表。该连接表将包含CommentID和TagID,以及其自己的唯一CommentTagID。此结构也将适用于所有其他项目。
问题
首先,这是实现这种数据库体系结构的正确方法吗?如果没有,还有什么其他方法可行?由于数据库最终将包含大量信息,因此我需要确保其可伸缩性。这是可扩展的实现吗?如果我有很多这样的表,那么此体系结构会使CRUD操作非常慢吗?我应该对ID字段使用GUID还是递增INT?
帮助和建议将不胜感激。
谢谢你。
-
您可能还需要查看WordPress模式和数据库描述,以了解其他人如何解决类似的问题。