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

 找回密码
 立即注册
搜索

Discuz X2回帖奖励最大只能设置32767分

[复制链接]
charles417 发表于 2012-2-23 11:16:20 | 显示全部楼层 |阅读模式
Discuz X2提供的回帖奖励功能,因为pre_forum_thread表字段设置错误,造成该功能无法设置大于32767积分。但是需要扣除的用户积分还是按照实际需要扣除的扣掉。

例如,设置每次回帖奖励3000,奖励22人,共需积分66000,发帖时扣除66000,但是回帖奖励只能有32767,因为pre_forum_thread表中的replycredit字段,类型为smallint(6),最大只能存储32767。即使修改为smallint(6) unsigned,也只能存储65535。因为这个字段不可能为负值,因此,建议该字段修改为int unsigned。
回复

使用道具 举报

小芸妮 发表于 2012-2-23 14:22:54 | 显示全部楼层
支持一下楼主辛苦的分享
回复

使用道具 举报

m.king 发表于 2012-2-23 15:32:54 | 显示全部楼层
您的建议非常好,感谢您的反馈。该问题我们已经发现了,问题有待研发和产品设计组探讨是否有需要加大这个值。
回复

使用道具 举报

 楼主| charles417 发表于 2012-2-23 16:59:36 | 显示全部楼层
m.king 发表于 2012-2-23 15:32
您的建议非常好,感谢您的反馈。该问题我们已经发现了,问题有待研发和产品设计组探讨是否有需要加大这个值 ...

这个值是必须要加大的,因为它是积分与数量的乘积,数值是有可能达到非常大的(最大可以达到用户的最大积分),这个字段的类型设计应该与用户积分表pre_common_member_count中的extcredits*字段一致。

虽然用户评分也有可能超过32767,但因为都只是单次记录,没有乘法运算,出现的几率不是很高,因此pre_forum_ratelog表中使用smallint signed都没多大问题。

刚才回此帖时发现pre_common_member_count中还有其他的字段,也是使用的smallint(6),希望你们也研究一下,是否对应需要加大这些字段的阀值,或者建议在tools中加上能批量修改这些有可能超出表设计限制的功能。

评分

1

查看全部评分

回复

使用道具 举报

m.king 发表于 2012-2-23 17:32:14 | 显示全部楼层
charles417 发表于 2012-2-23 16:59
这个值是必须要加大的,因为它是积分与数量的乘积,数值是有可能达到非常大的(最大可以达到用户的最大积 ...

感谢您的反馈!该问题已经修复。
回复

使用道具 举报

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

本版积分规则

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

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

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

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