gpt4 book ai didi

mysql - 单独的类别表或使用联接?

转载 作者:行者123 更新时间:2023-11-29 10:29:39 24 4
gpt4 key购买 nike

我的网站有各种文章,总是且仅显示在特定类别下,例如新闻、体育、商业。

如果表设计中所有文章都位于一个表中,并具有指向文章类型表的关系链接,这样会更有效吗?例如,我可以进行联接来获取所有体育文章。

或者为每种类型的文章设置单独的表格(一个用于新闻,一个用于体育,一个用于商业)会更有效吗?

请注意,我永远不会超过这三个类别。

---编辑

表结构是相同的。例如标题、文章内容、日期等

最佳答案

如果新闻文章、体育文章和商业文章之间的唯一区别是类别(即所有类型的文章只有标题、作者、发布日期、字数、正文、允许评论等,并且没有专门的列),然后您使用一个带有 CategoryID 的 Articles 表

如果体育文章与商业文章有很大不同,以至于它们唯一共享的属性是正文,那么不同的表将是最佳选择;您不希望文章表在 A 行上有一堆空列“因为这些列仅用于体育文章,这是一篇商业文章”,并且在 B 行上有一堆不同的空列“因为这是一篇体育文章”这些专栏仅供商业用途”

偶尔出现 null 是可以接受的。就像如果你有一条规则“人们可以向商业文章的作者写推文,因为他们会友善而有礼貌,但将作者的 Twitter 句柄放在体育文章上”将煽动对手团队的暴行和打斗”,那么对于体育文章,您的文章表 AuthorTwitterHandle 列可以为空,而对于商业文章则填充 - 但本质上,这里它并不是商业文章的特定属性,永远不能应用于其他文章。有一天,一位新任首席执行官可能会决定在体育文章上启用推特……如果你能想到例如商业文章具有而其他文章没有的 10 个合法的额外属性,您始终可以为这些属性创建一个额外的表,并通过 BusinessArticlesExtraProperties.ArticleID = Articles.ID 将它们关联回文章表> type join..这类似于面向对象编程的继承机制

关于mysql - 单独的类别表或使用联接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47651455/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com