数据库设计问题

liuj4
  • 41

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

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

回复
阅读 1.8k
1 个回答
一枚小白
  • 244
✓ 已被采纳

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

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

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

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

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

宣传栏