Discuz教程网

建议在 Forum_post 表中添加一个 ReplyToPid 字段,减少引用内容对数据库的空间占用。

[复制链接]
authicon 网域数据中心 发表于 2012-8-10 20:14:17 | 显示全部楼层 |阅读模式
前阵子发了一个建议帖: 不过还没有结论,就自动关闭了。我怀疑一些关键性的建议可能还没人注意到,所以这里重新提一下:

点楼层下方的“回复”的主要目的是让楼层作者收到通知。为了保持话题的连续性,很多朋友会使用楼层下方的“回复”按钮来直接和楼层作者进行交流。这种交流有时只是片言只字,只占据帖子数据量的几分之一甚至十几分之一,剩余的数据量都被“自动引用”的内容所占据,这对数据库空间是巨大的浪费。如图:

171715ii1y66foxxp6l6yz.gif.thumb.jpg

源代码模式:

171715ii1y66foxxp6l6yz.gif.thumb.jpg

从上图中,大家可以看到楼层回复时真正起到交流作用的文字所占的比例可能很小,其他大部分内容都是完全可以通过代码实现的。

我在想,既然“自动引用”时要传递的主要就是相应帖子的PID。为什么不在楼层回复的环节中用一个单独的字段(比如ReplyToPid)来存放这个 PID,再在提交后的显示页面中利用数据库查询 自动调用此 pid 的帖子正文以达到引用的目的?这样不是更节省数据库空间吗?


说:


一直都是这样的机制
减少查询也是一部分原因

在被引用的内容中点击返回钮,是可以查看原始楼层的


然后就再没有回复了,难道“一直这样”,今后就一定这样吗?

返回按钮 无非就是一个类似如下的链接:
http://www.discuz.net/forum.php?mod=redirect&goto=findpost&pid=19860738&ptid=2235267
其中最关键的参数是:pid=19860738
甚至 ptid 都不需要。

所有的引用内容(包括那个返回按钮 ),都是可以套用模板来展现的。只需要在点击楼层下面的“回复”时获取一个原始楼层的PID,传递到新帖子中,就可以完整实现现在达到的效果。

我再详述一下思路:

1、在 pre_forum_post 表中添加一个新字段,比如是 ReplytoPid 字段
2、当点击某个楼层下方的“回复”时,获取此楼层的 pid ,并传递到帖子编辑页面。
3、提交帖子时,将刚才获取的原始楼层 pid 写入新帖子的 ReplytoPid 字段
4、显示新帖子时,查询验证每个楼层的 ReplytoPid 字段是否为空。为空则直接显示帖子正文; 不为空则前往 ReplytoPid 字段获得引用对象的 pid ,截取此 pid 对应帖子的部分引用内容,添加到当前帖子正文之前一起显示给用户。

希望官方慎重考虑此建议!



上一篇:不知道discuzX3门户页可否抓取出xweibo的数据滚动显示?
下一篇:关于积分消耗,建议参考支付宝金账户降级规则。(附图)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

1314学习网 ( 浙ICP备10214163号 )

GMT+8, 2025-5-4 18:37

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表