例如,新闻网站可能有“类别”,如政治,商业,娱乐,体育,生活方式,技术,科学,健康,.等等。每一篇文章只属于一个类别,但可以有多个“标签”。标签就像我们在社交媒体上看到的哈希标签,可以非常详细。
这个StackOverflow问题展示了为“标记”设计数据库的最佳方法。如果我需要添加“类别”呢?
我不确定是否可以简单地将每一篇文章的类别记录在其表行中。也许添加一个名为“类别”的列?如果是这样的话,当访问者想要搜索,比如说,所有属于“商业”类别并且有"Facebook“标签的文章时,性能是否仍然很好?
发布于 2017-12-03 03:17:12
如果每一篇文章最多有一个(或一个和唯一一个)类别,那么您将在article表中包含类别信息。
我不会在表格中包括该类别的文本名称。我将有一个单独的category表,其类别名称和整数ID值。由于可能的类别数量相对较少,这不应对性能产生重大影响;而且,当您第一次更改某个类别的名称时,它将证明它的价值。
如果按标记和类别进行的搜索非常常见(正如我想象的那样),您可能还需要article.category_id上的索引。
发布于 2017-12-02 16:24:00
SELECTs。AND deleted = 1 --这是一个性能杀手!但是怎么做呢?好吧,我都是为你做的。见这里。
https://dba.stackexchange.com/questions/192237
复制相似问题