关于排行榜的数据库设计及实现

小弟我菜鸟,现遇到该问题求助大神们,希望得到回复和解答,谢谢。

该排行榜是针对图书在线阅读做的,浏览过同类的贴吧贴子,给出的答复多是根据时间的筛选统计出周,月的排行;我想了想这样的设计,会记录下每次点击浏览事件时记录下该次点击事件的时间,试想假定图书的数量够多同时在线阅读的读者够多,那么数据库中的记录会多到吓人,查询时给数据库的负担也过大。

所以我想了想,不这样做因为排行榜并没有想到要实时排行...(拜读过一个大神的老贴子虽然没怎么读懂大概意思就是这么做耗资源不可行)数据库表设计如下:

浏览记录表:

类别编号 书名 书籍号 点击次数(进行累加点击更新该数据) 时间(以日期为单位忽略时分秒)

现想通过任务给数据库分配任务实现每日晚11点对该表进行操作,以书籍编号为准 根据当天的数据将所有的书籍生成明日的数据行,以此来记录明天的点击次数,保证该表中一个图书编号只记录一条数据。

例:

BC001 《肖申克的救赎》 B001    100(可累加)     2012-12-18

假定该条数据在12-18日晚11点(作业执行时间暂定 不考虑此期间的数据丢失)的点击次数累加情况为100

那么在此同时在该表生成的明日预留的操作数据为

BC001 《肖申克的救赎》 B001    100(可累加)     2012-12-19

那么此条数据就可以用来记录该本书的明日的点击情况了。

现在遇到的问题就是怎么样去生成这条数据

select * from A表 into B表

有类似的T-SQL语句不过我就尴尬了

该语句必须要求B表不存在,如果将数据每日的更新都放在一张新表中一个是表的命名问题,还有就是最后统计时多表的查询会增加麻烦,还有会让这个表设计变得没有意义了吧?(不是想的很清白 求大神指正)


慕斯709654
浏览 1925回答 2
2回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

SQL Server