开发者社区> 问答> 正文

咨询一个数据库设计问题。请指点:报错

举个例子吧。类似这样

用户表

id,用户名, 密码, 头像 ,注册时间

这时候,一个用户在一个帖子里面进行回复,回复后,当其他用户查看的时候肯定是要读取头像的对吧,总不能显示一个默认的。这时候要把用户表的id存入留言表好还是把用户的头像(图片地址)存入留言表好

留言表

第一种,就是存入用户表id,这样以后查询的时候关联下用户表就可以得到想要的数据,但是有人认为在不涉及登录操作的时候关联操作了用户信息表是不合理的,请问是不是真的?那种方案好?

留言id,用户id,内容,时间  

第二种

留言id,用户id,用户名,头像,内容,时间

展开
收起
kun坤 2020-06-07 16:36:31 582 0
1 条回答
写回答
取消 提交回答
  • 第一种,除非你明白你在做什么。
    举个栗子,用户改变了头像怎么办?

    你飘红的话,要不是你理解错误,就是那个人在犯错误。

    ######

    第一种,没人用第二种的,有人修改头像怎么办?一下子更新所有的留言吗?数据少时候你会觉得没什么,多时候就呵呵了。

    第一种关联起来没有不合理,浏览一个帖时候,用sql in一次加载关联的所有用户信息就行了,不用每个留言查询一次,一般帖子或者登陆信息都是有做缓存的,不存在问题。

    ######嗯,列表尤其是复杂列表,应该尽量避免join查询。如你这个场景,中心内容是留言人和留言内容,留言人头像是外挂的信息。可以单独写个方法处理。以后扩展其他外挂也方便。######第一种######头像可以参照ucenter的写法来获取 avatar.php?uid=1
    2020-06-07 16:36:36
    赞同 展开评论 打赏
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
DTCC 2022大会集锦《云原生一站式数据库技术与实践》 立即下载
阿里云瑶池数据库精要2022版 立即下载
2022 DTCC-阿里云一站式数据库上云最佳实践 立即下载