Sql 数据库布局标注系统

Sql 数据库布局标注系统,sql,database-design,tags,Sql,Database Design,Tags,我正在为客户创建一个网站,他们希望能够创建文章。我的想法是标记它们,这样我就可以实现这个系统了 从架构和性能角度来看,最佳设计是什么: 1。要使表包含所有标记,然后使用一对多关系表链接如下标记: articles table with ID tags table with ID one to many table with columns Article.ID and Tags.ID articles table with ID tags table with Article.ID and

我正在为客户创建一个网站,他们希望能够创建文章。我的想法是标记它们,这样我就可以实现这个系统了

从架构和性能角度来看,最佳设计是什么:

1。要使表包含所有标记,然后使用一对多关系表链接如下标记:

articles table with ID
tags table  with ID
one to many table with columns Article.ID and Tags.ID
articles table with ID
tags table with Article.ID and tag text
2.一个表包含文章,另一个表包含类似以下文章的标签:

articles table with ID
tags table  with ID
one to many table with columns Article.ID and Tags.ID
articles table with ID
tags table with Article.ID and tag text

提前谢谢

你的第一个选择是最合适的,理论上也是正确的

你猜,你的客户不认为标签是一个很好的功能,因为每个人都有它-他们希望有标签搜索。即使他们还不了解自己的需求,并且真的想拥有标签,因为周围的每个人都有标签,他们也会很快意识到自己的需求

第一个选项将为您提供更好的搜索操作性能


为文章、标签和它们之间的多对多实现单独的表格。

您的第一个选项是最合适的,理论上也是正确的

你猜,你的客户不认为标签是一个很好的功能,因为每个人都有它-他们希望有标签搜索。即使他们还不了解自己的需求,并且真的想拥有标签,因为周围的每个人都有标签,他们也会很快意识到自己的需求

第一个选项将为您提供更好的搜索操作性能


为文章、标签和它们之间的多对多实现单独的表。

肯定是第一个选项

除了其他好处外,您还可以通过在添加标记之前检查标记(或类似标记)是否已存在,允许用户从现有标记中选择,和/或仅允许超级用户添加新标记,来强制执行标记使用的一些规则性


通过这种方式,您可以避免相同标签的拼写错误或交替拼写(即美国、美国、美国、美国、美国、美国、美国、美国、美国、美国、美国、美国、美洲、美洲等等),这肯定是第一种选择

除了其他好处外,您还可以通过在添加标记之前检查标记(或类似标记)是否已存在,允许用户从现有标记中选择,和/或仅允许超级用户添加新标记,来强制执行标记使用的一些规则性

通过这种方式,您可以避免相同标签的拼写错误或交替拼写(即美国、美国、美国海外金融管理局、美国、美国、美国、美国、美国、美国、美国、美国、美国、美国、美洲、美国等等,在标记有关美国的内容时)