==========
以下是引用 magic3694 于 2008-3-21 19:43:46 发表的文字:
我根据“图书流通排名次”产品建立了一个“读者借阅排名次”的统计产品,但统计出来的结果不太对。
我统计了起始日期:20080223 结束日期:20080316 读者借阅排名情况,结果前两名如下:
姓名 借阅量 读者单位/类型
李婷 42 07国际商务系统招商英(2)班/外借志愿者
曹盛 35 06商务系自考商英(1)班/学生
我馆学生设置最大借书量为5册,不太可能借阅这么多册次。
请老师抽空帮我看看哪里出了问题。
==========
要看懂或者编写dt1000的流通统计程序,需要一些知识储备。
dt1000的流通系统,在进行业务操作的时候,会往3个地方写信息:
1) 读者库
在这里记载读者当前所借(还未还)的图书册(986字段);也记载一些借阅历史信息,即读者曾经借过哪些书(989字段)
2) 编目库
dt1000采用编目库中扩充986字段的方式来存放从属于一种图书的册。也就是,种、册信息都在一个数据库中。
在流通操作的时候,软件会在986字段中记载哪个读者借阅了哪些册。
3) 日志库
每一笔流通操作,都会在日志库中创建一条记录,这条记录表达了这个操作的全部信息。
~~~~
从时间轴上来看,读者库和编目库主要记载了当前一刻的最新信息。例如哪些读者当前正在借阅哪些图书的册。历史上已经发生过的借阅,在读者库986和编目库的986字段中,信息已经被消除。这样做的目的,是为了保持记录的简洁。
当然读者库留有989字段作为历史记载,但是这个功能仅仅是一种补充,而不是读者库的主要功能。
而日志库是专门用来记载操作历史的。每一笔操作,按照发生的时间顺序,在日志库中都忠实记载。而如果想要从日志库中看出当前一刻,或者历史上某一刻的全面信息,则不方便,需要从日志的最开始向后逐步综合累积日志,才能看出。
~~~
要进行流通排行统计,不管是图书被借的活跃程度统计,还是读者借阅次数的活跃统计,显然都是要针对日志库进行的。
你所参考的“图书流通排名次”统计方案,它的设计意图就是要求以日志库为主轴进行数据扫描和统计。当然,中间不排除需要参考读者库数据,那只是为了从读者证条码翻译为读者姓名这么一种用途,不是主要线索。
从你只发来的读者库的一条数据,没有发来日志库的数据来看,你并没有理解这个统计方案的用法和意图。因此,修改出来的“读者借阅排名次”的统计方案,就会有很大问题了。
~~~
所以,请发来贵馆的流通日志库数据,以便我进行测试。这是按照日志库进行统计的传统思路。
另外,也可开发一个统计方案,只需依赖读者库中的989字段而不必依赖日志库,但是这个方法有些潜在的问题,就是不知道读者库中的989容量有多大,包含多少时间范围的信息。
两个不同的思路和方向,会产生出两种不同的统计方案。