问答

数据库设计问题

作者:admin 2021-09-30 我要评论

目前有一个文章表(文章id,文章title,文章content,作者id),这时目前的字段,作者id是用户表的外键,但当我获取一个文章列表的时候,还需要展示作者的名称、头像...

在说正事之前,我要推荐一个福利:你还在原价购买阿里云、腾讯云、华为云服务器吗?那太亏啦!来这里,新购、升级、续费都打折,能够为您省60%的钱呢!2核4G企业级云服务器低至69元/年,点击进去看看吧>>>)

目前有一个文章表(文章id,文章title,文章content,作者id),这时目前的字段,作者id是用户表的外键,但当我获取一个文章列表的时候,还需要展示作者的名称、头像等等。

如果把作者名称、头像等都放到文章表里,好像不太符合设计原则,但是如果要取文章的时候再根据作者id去查用户表,效率好像很低,有什么比较好的解决方案呢?

###

第一点:作者名称和头像不放进文章表是正确的选择。因为如果以后作者修改头像,需要更新用户表和文章表。

第二点:表关联是通过用户表主键关联的效率应该不低。你可以通过explain来看一下sql语句走的索引。

select user.name, user.avatar, article.title, article.content from article left join user on article.userId = user.id;

第三点:如果不想使用sql关联查询,你可以分成2步查询。第一步查询文章,然后获取到用户id;第二步根据主键查询用户头像和姓名,根据主键查询一定是很快的。

第四点:有任何疑问可以一起交流沟通

版权声明:本文转载自网络,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本站转载出于传播更多优秀技术知识之目的,如有侵权请联系QQ/微信:153890879删除

相关文章
  • 数据库设计问题

    数据库设计问题

  • uniapp启动treeShaking打h5生产包,打

    uniapp启动treeShaking打h5生产包,打

  • 移动端,input控制只能输入数字

    移动端,input控制只能输入数字

  • js如何对域名和ip进行校验?(正则表达式

    js如何对域名和ip进行校验?(正则表达式

腾讯云代理商
海外云服务器