我觉得是3个字段,分辨表示 总下载 月狭窄 周下载当有人下载时这3个都+1然后每周1让所有不为0的周下载为0每月同理不知道是不是这样实现的?

解决方案 »

  1.   

    照1L那样,那么多软件,每次下载都要记录,那总下载量就=那张表的count,读一次不是很慢?
      

  2.   

    总下载 是+1
    月下载量的话 得到DATATIME.NOW的天 看看是不是1号 
    日 类似
      

  3.   

    这样的日志,会很长啊,比如有1W个软件,平均每个软件下载1W次,这样就有1亿条记录了.如果用我说的方法,我认为应该能很快统计出来.用日志的方法,如果要统计
    月下载TOP10,总下载TOP10的话感觉会很慢,因为要
    select top 10 count(*) from tableA group by id order by count(*)
    还有月排行,周排行,就还要where以下.在1亿条数据里面就慢了用我说的那种,虽然每个月之后,以前的数据就丢失了,但是应该能很快的得到结果直接
    select 列名1,列名2,... from tableB order by downtimesByTotal
    select 列名1,列名2,... from tableB order by downtimesByWeek
    ...这样就出来了.而且这个tableB也只有1W条数据
      

  4.   

    软件表关键字段
    LastHitTime datatime
    Hits   int
    DayHits   int
    WeekHits   int
    MonthHits   int下载成功以后,执行一下更新点击量的字段declare @LastHitTime datetime  
    select @LastHitTime=LastHitTime from TopWinCMS_Soft where ID=@ID
    update TopWinCMS_Soft set Hits=Hits+1 where ID=@ID
    if datediff(D,@LastHitTime ,getdate())<=0  
    update TopWinCMS_Soft set DayHits=DayHits+1 where ID=@ID
    else
    update TopWinCMS_Soft set DayHits= 1 where ID=@ID if datediff(ww,@LastHitTime,getdate())<=0 
    update TopWinCMS_Soft set WeekHits= WeekHits+1 where ID=@ID
    else
    update TopWinCMS_Soft set WeekHits= 1 where ID=@ID if datediff(m,@LastHitTime,getdate())<=0  
    update TopWinCMS_Soft set MonthHits= MonthHits+1 where ID=@ID
    else
    update TopWinCMS_Soft set MonthHits= 1 where ID=@ID
     
    update TopWinCMS_Soft set LastHitTime= getdate() where ID=@ID
      

  5.   

    一个资源表
    一个用户表只需加一个下载日志表
    需要下列几个字段就可以id,资源id,用户id,下载时间
    这些就可以了然后就可以根据时间统计了
      

  6.   

    9L 10L没考虑到我5L说的那个问题. 我觉得应该是8L那样的.
      

  7.   

    如果要严格区分每一天所属的周和月,并且精简行数的话,用多个表比较好先是日表,一个软件一天一条数据,即软件ID 日期 下载次数     是否填进周表   是否填进月表
    1      2009-09-14 12345   否              否这样一个软件一天只产生一条记录然后定时按日期把上一周的记录group by 软件ID,填进周表,同时是否填进周表置为是软件ID 开始日期 结束日期 下载次数
    1      2009-09-14 2009-09-20 654321再定时按日期把上个月的记录group by 软件ID,填进月表因为周和月是交叉的,所以判断当日表的某一条记录已经属于上个月又属于上周,且已经填进周表和月表的时候,就可清除日报的数据而后,当周表和月表的数据已经过时之后,还可将其填进总下载并清理掉这样,通过数个表的级联清理,数据的条数可以控制在2N-3N左右