欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

请教一个数据库设计的问题!

程序员文章站 2022-06-17 14:26:42
...
请教一个数据库设计的问题!

我假设一个应用。 比如说论坛
我们发一个帖子 我们建一张 帖子表 topic
然后 支持让游客们回复 准备一张 回复表 reply

我的问题是:
假设我们要知道每一个帖子 的 回复数 我们应该如何去统计比较好呢?
1.在帖子topic表 准备一个字段 回复数(reply_count) 我们直接select这个字段 得出回复数
2.用表关联,然后去select count(reply)数 得到回复数

我是这样想的:
方法1:按正常的业务逻辑走是可行的。并且在效率上是占优势的。但是可能会出现数据的不一致性啊。我的意思是数据库不排斥我记录的是10个回复数 但实际上reply回复表是13个记录。
方法2:数据结构感觉比较严谨,但是就牺牲了搜索效率。
不知道有没其他好的做法,或者说这两个方法哪个更可行一些?

回复讨论(解决方案)

在方法1中,对 reply 的 insert 和 delete 操作成功后,都需要对 topic.reply_count 做 update

其实要看你对:“要知道每一个帖子 的 回复数”的使用频率。
1、如果只是在后台一个月统计一次的话,很显然可以用第二种。
2、如果是浏览帖子就需要显示出来的话,那肯定是第一种啦。

建议具体问题具体分析,reply_count,字段要建立

建议具体问题具体分析,reply_count,字段要建立

对冗余设计 实际使用看情况。

数据库我才开始看,不过这个问题貌似很简单,就是两个表都要更新,做关联。
我在赶集网发了简历,才要2000,居然没人理我,一个电话都没有,是我简历写的不好吗,帮忙看看吧
姓名:襟绾打唠唬
网址:http://bj.ganji.com/jianli/564717047x.htm?_rtm=1

不要为了节约一个字段而失去效率呵呵。
看看DISCUZ 的表的设计。缓存回帖数是必须的。

数据库我才开始看,不过这个问题貌似很简单,就是两个表都要更新,做关联。
我在赶集网发了简历,才要2000,居然没人理我,一个电话都没有,是我简历写的不好吗,帮忙看看吧
姓名:襟绾打唠唬
网址:http://bj.ganji.com/jianli/564717047x.htm?_rtm=1

不要尝试压低自己的薪资去“乞讨”一份工作,这是一种对自己不自信,不负责任的态度。
朋友,我看了你的简历。
没有真实名字,用人单位如何称呼你?
没有直接的联系电话,你可以加在备注中。
没有一个比较正面的自我描述,对方如何大致了解你?
还有,哥,你也27岁了。只有23 24刚从大学毕业的朋友才可能会真正意义上的责怪自己的大学不好。你都出来社会有一段时间了吧?再继续抱怨自己的大学,你的青春年华也就只是用来抱怨了。
你说希望有个人能带,那么为什么别人不选择刚从大学毕业意气风发的应届生,而要选择你呢?你的优势在哪呢?
希望你好好准备。祝你好运!