场景
我正在构建一个包含一系列不同表的数据库。它们由一个评论表格、一个博客表格和一个文章表格组成。我希望能够将新项目添加到每个表中,并用0到5个标签对它们进行标记,以帮助用户更容易地搜索相关的特定信息。
关于架构的初步想法
我的第一个想法是建立一个集中的标签表。此表将列出使用TagID字段和TagName字段的所有可用标记。因为每个项目可以有多个标签,每个标签可以有多个项目,所以我需要在每个项目表和标签表之间建立多对多关系。
例如:
许多评论可以有许多标签。许多标签可以有许多注释。
许多文章可以有许多标签。许多标签可以有许多文章。
等等……
当前的理解
根据以前的经验,我知道在T-SQL中实现这种结构的一种方法是在注释表和标记表之间有一个邻接表。这个相邻表将包含CommentID和TagID,以及它自己的惟一CommentTagID。这种结构也适用于所有其他项目。
问题
首先,这是实现这样的数据库架构的正确方式吗?如果不是,还有其他可行的方法吗?由于数据库最终将包含大量信息,因此我需要确保它是可伸缩的。这是一个可伸缩的实现吗?如果我有很多这样的表,这种架构会使CRUD操作变得非常慢吗?我应该对ID字段使用GUID还是递增INTs?
我们将非常感谢您的帮助和建议。
谢谢你。
发布于 2009-10-27 05:31:35
您可能还想看看WordPress schema和database description,看看其他人是如何解决类似问题的。
https://stackoverflow.com/questions/1621131
复制相似问题