user 用户表(
user_id (pk)
user_name
souce
...
);
records 用户记录表(
user_id
mm( 月份)
souce
.....
);

解决方案 »

  1.   

    你也可以将历史记录和当前记录记在一个表中,当然如果你的用户量不是太巨的话。user_score
    ( user_id,
      yymm, --年月
      score
    )
    其中user_id+yymm共同构成主键,每月的第一天,你可以为每个用户添加一个新记录,其score为0,如果用户数多,而并不是每个用户每月都会发帖,你也可以在进行分数累加时,(此时应该是个update语句)判断是否存在当月记录(sql%rowcount是否>0),若不存在就添加一条记录,不必在月初为每个用户添加一条新记录。