【问题标题】:Database layout tagging system数据库布局标注系统
【发布时间】:2010-03-19 18:21:13
【问题描述】:

我正在为客户创建一个网站,他们希望能够创建文章。我的想法是给它们贴上标签,所以我要实现这个系统。

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

1. 有一个包含所有标签的表格,然后有一个一对多的关系表来链接这样的标签:

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

2. 有一个包含文章的表格和一个带有标签的文章,如下所示:

articles table with ID
tags table with Article.ID and tag text

提前致谢!

【问题讨论】:

    标签: sql database-design tags


    【解决方案1】:

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

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

    第一个选项会给你更好的搜索操作性能。

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

    【讨论】:

      【解决方案2】:

      绝对是第一个选项。

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

      这样可以避免在标记有关美国的内容时出现拼写错误或相同标签的替代拼写(即 US、USA、USofA、U.S.A.、U.S.、US.、America、Amerika、Amrica 等)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-09-16
        • 2012-07-23
        • 2012-09-02
        • 2011-12-27
        • 2019-10-21
        • 1970-01-01
        相关资源
        最近更新 更多