Discuz!官方免费开源建站系统

 找回密码
 立即注册
搜索

【哪个更有效率?】楼层回复时非要把“自动引用”的内容写入帖子正文中吗?

[复制链接]
IsaacZ 发表于 2011-6-16 23:36:39 | 显示全部楼层 |阅读模式
本帖最后由 IsaacZ 于 2011-7-18 09:14 编辑

IsaacZ的点拨论坛近日从7.2升级到X2,发现原来楼层下方的“引用”与“回复”按钮现在合并到一起了,点楼层下方的“回复”默认就是原来的“引用”,并且引用内容出现在编辑框外部的上方,不可编辑,这种情况 IsaacZ 称之为“自动引用”。

令人感到不解的是,这些自动引用的内容在帖子提交后竟然出现在帖子正文中,占据了一定的数据库空间。

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

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

Discuz!原版程序一直以来都是采用将引用内容直接写入帖子的方式,似乎是为了减少数据库查询次数。不过我也见到有些论坛的帖子内容页摆20、30层甚至50层的。似乎多上几个查询也无大碍的说。

菜鸟妄谈,希望大家不要笑话我哈!!

6楼有截图,9楼、10楼有建议方案。


回复

使用道具 举报

 楼主| IsaacZ 发表于 2011-6-16 23:37:07 | 显示全部楼层
本帖最后由 IsaacZ 于 2011-6-16 22:12 编辑

演示自动引用。请看3楼。
回复

使用道具 举报

 楼主| IsaacZ 发表于 2011-6-16 23:37:38 | 显示全部楼层
本帖最后由 IsaacZ 于 2011-6-16 22:12 编辑
IsaacZ 发表于 2011-6-16 22:07
演示自动引用。请看3楼。

原来还能在上面看到“回复 XX 楼 某某某”之类的字样,现在都一律是上面这种模样,感觉很不实在,时间定位是准了,但是没有楼层号标识,不容易把握讨论进度。
回复

使用道具 举报

 楼主| IsaacZ 发表于 2011-6-17 13:14:56 | 显示全部楼层
大家都请发表一下意见好吗?
回复

使用道具 举报

kissmeily 发表于 2011-6-17 13:56:40 | 显示全部楼层
这个不太清楚
回复

使用道具 举报

 楼主| IsaacZ 发表于 2011-6-17 17:19:35 | 显示全部楼层
再展示一下低效的自动引用:


实际显示效果:



源代码模式:


回复

使用道具 举报

肉松面包 发表于 2011-6-17 17:38:45 | 显示全部楼层
一直都是这样的机制
减少查询也是一部分原因

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

使用道具 举报

ShinuxLiu 发表于 2011-6-17 18:10:01 | 显示全部楼层
肉松面包 发表于 2011-6-17 17:38
一直都是这样的机制
减少查询也是一部分原因

这个有没有真的不好说,确实比较纠结啊
回复

使用道具 举报

 楼主| IsaacZ 发表于 2011-6-18 11:38:43 | 显示全部楼层
肉松面包 发表于 2011-6-17 16:08
一直都是这样的机制
减少查询也是一部分原因

返回按钮无非就是一个类似如下的链接:
https://discuz.dismall.com/forum. ... 38&ptid=2235267
其中最关键的参数是:pid=19860738
甚至 ptid 都不需要。

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

我再详述一下思路:

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

使用道具 举报

 楼主| IsaacZ 发表于 2011-6-18 11:43:38 | 显示全部楼层
本帖最后由 IsaacZ 于 2011-6-18 10:15 编辑

再说另一个问题,9楼本来我想引用的是7楼的第3行,就是下面这句:

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

但是“自动引用”只提取了原帖的前两行,剥夺了发帖人自定义引用内容的权利,使回复的针对性变得模糊。(尽管这可以通过重新编辑原帖来实现,但毕竟麻烦。)

仍然建议用“模板+pid字段”的方式来处理引用内容。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2025-8-25 10:38 , Processed in 0.107202 second(s), 15 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

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