网站导航网学 原创论文 网站设计 最新系统 最新研究 原创论文 获取论文 论文降重 发表论文 论文发表 UI设计定制 论文答辩PPT格式排版 期刊发表 论文专题
返回网学首页
网学原创论文
最新论文 推荐专题 热门论文 论文专题
当前位置: 网学 > 设计下载 > PB毕业设计 > 正文

基于PB的图书馆管理系统的设计

来源:http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 13/05/11

文章导读:在新的一年中,各位网友都进入紧张的学习或是工作阶段。网学的各位小编整理了PB毕业设计-基于PB的图书馆管理系统的设计的相关内容供大家参考,祝大家在新的一年里工作和学习顺利!

QQ交谈客服咨询,网学网竭诚为您服务,本站永久域名:myeducs.cn

2 数据库逻辑结构设计

数据库设计有几个范式,一般我们要做到的是第三范式,即数据表中没有冗余字段以及同一个表中的字段没有函数依赖关系,冗余字段即在一个表中已经保存过的信息,在另一个表中就不应该存在,如果需要的话,可以通过表间的关联来得到,函数依赖性就是一个表中的字段间不应该有计算关系,如一个表中有单价字段、数量字段,就不应该有一个总金额字段。如果程序运行过程中需要总金额,可以实时计算。不过在一些较常用的表中,我们可以适当地保留冗余字段,这样,在程序运行过程中可以减少由于表间互相关联而使用速度降低等问题。这就是所谓的第四范式。数据表设计时,最好不要使用用户输入的信息作为主键,每一个数据表自己定义一个主键,添加信息是由程序自动添加,这样就可以减少数据更新时产生的错误。表与表相关联的外键最好是由程序自动生成的主键,这样数据库就比较规范了。

另外,数据表设计时一般都应该有一些标志字段,标志字段可以定义成CHAR(1)BIT

型。建议实际应用中定义成CHAR(1)字段可以存储多种可能的状态,在最初设计时,可能我们没有考虑到的一些情况,在程序后来的开发中,可以通过设计标志字段为不同的值来解决,这样就避免了修改数据库结构。

数据库初期设计时一定要谨慎,把所有可能的情况都考虑进去,即使当时没有用到,也要将它留在数据库中作为备用字段以便将来扩充。

程序一旦开始编码,就应该尽量避免再修改数据库。因为如果数据库结构一旦改变,

所有与修改的数据表相关的业务都有可能受到影响,而某些影响还很难看到,这样就容易形成一个恶性循环。错误越改越多,越改越乱,最终导致程序的失败。PB的数据窗口与其他语言的数据控件不一样,它的很多东西是预编译的。即使你一个模块已经调试无误,但只要数据库结构改动。相应的模块就一定要重新修改,否则一定会出问题。

图书借阅管理系统数据库中各个表的设计结果如下面几个表格所示。每个表格表示为数据库中的一个表。

 

借阅人基本信息表memberinfo

说明:记录借阅人的基本情况,memberid设为主键、索引。          4.1

列名

数据类型

长度

可否为空

注释

Memberid

Char

10

Not Null

借阅人编号

Membername

Char

10

Null

借阅人姓名

Id

varchar

20

Null

身份证号

Add

Char

50

Null

联系地址

Phone

Char

20

Null

联系电话

Mobile

Char

20

Null

移动电话

                                    

用户基本信息表people

说明:记录系统用户的用户名、密码与权限,name设为主键。         4.2     

列名

数据类型

长度

可否为空

注释

name

Char

10

Not Null

用户名

password

Char

10

Not Null

密码

level

char

1

Not Null

权限

                                  

图书基本信息表bookinfo

说明:记录图书基本信息,bookid设为主键、索引。                   4.3

列名

数据类型

长度

可否为空

注释

Bookid

Char

10

Not null

图书编号

Isbn

Char

30

Null

图书ISBN

Classname

Char

20

Null

图书类型

Title

Char

40

Null

图书名称

publishdate

date

-

Null

出版日期

author

Char

20

Null

作者

words

int

-

Null

字数(千字)

pub

Char

30

Null

出版社

price

numeric

19.4

Null

价格

disk

Char

1

Null

附带光盘

keyword

Char

30

Null

关键词

number

int

-

Null

存放代码

Abstract

varchar

100

Null

摘要

bookonloan

Char

1

Null

图书在借标志

(Y-在借N-未借)

 

   出版社基本信息表publishinfo

说明:记录出版社信息,pubid设为主键。                         4.4

列名

数据类型

长度

可否为空

注释

Pubid

char

4

Not Null

出版社编号

Pub

char

30

Null

出版社名称

Add

char

50

Null

联系地址

Zip

char

6

Null

邮政编码

Tel

char

16

Null

联系电话

Fax

char

16

Null

传真

http

char

16

Null

网址

 

 

分类信息表bookclass

说明:记录定制的分类情况,classid设为主键。                     4.5

列名

数据类型

长度

可否为空

注释

Classid

Char

2

Not Null

分类编号

Classname

Char

20

Null

分类名称

Number

int

-

Null

数目

 

 

 借阅情况信息表loan

说明:进行借阅的登记,loanid设为主键、自动增长。                 4.6

列名

数据类型

长度

可否为空

注释

Loanid

Int

-

Not Null

借阅序号

Bookid

Char

10

Not Null

图书编号

memberid

Char

10

Not Null

借阅人编号

Loandate

date

-

Null

借阅日期

规则信息表regular

说明:记录设置的借阅规则,days设为主键。                         4.7

列名

数据类型

长度

可否为空

注释

Days

Int

4

Not Null

免费借阅天数

Fine

Dec

5.2

Null

罚金标准

Flag

Char

1

Null

规则开关

4)新书入库窗口 w_newbook


 

能介绍:增加、修改图书信息。

操作方法:a.增加图书信息:点击“新增”按钮,添加图书信息,完成后点击“保存”按钮

          b.修改图书信息:通过“图书编号”检索出图书信息,修改后点击“保存”按钮

代码分析:

Open事件:dw_1.settransobject(sqlca) //为数据窗口指定事务对象

dw_1.retrieve()//为数据窗口从数据库中获得数据

this.width=2926 //设置窗口的高度和宽度

this.height=1572

“检索”按钮:string ls_bookid,ls_filter

ls_bookid=sle_bookid.text

dw_1.setfilter("bookid=''"+ls_bookid+"''")//设置过滤条件

dw_1.filter()//过滤数据

“上一条”按钮:dw_1.scrollpriorrow()//滚动到上一行

“下一条”按钮:dw_1.scrollnextrow()//滚动到下一行

“新增”按钮:long ll_row

ll_row=dw_1.insertrow(0) //在数据窗口中增加一行

dw_1.scrolltorow(ll_row) //数据窗口滚动到当前行

dw_1.setcolumn(2) //使第一列为当前列,并得到焦点

dw_1.setfocus()

“保存”按钮:long ll_row

dw_1.accepttext()//将数据写入主缓冲区

if dw_1.modifiedcount()>0 then //检测数据是否被修改

if dw_1.update()>0 then //如果被修改则更新数据库

    commit; //提交事务

    cb_new.setfocus()//“新增”按钮获得焦点

else

    rollback; //回滚事务

messagebox("系统提示","保存失败!请检验数据的正确性")

    dw_1.setcolumn(1) //数据窗口第一列获得焦点

    dw_1.setfocus()

end if

else

cb_new.setfocus()//“新增”按钮获得焦点

end if

 

本站发布的计算机毕业设计均是完整无错的全套作品,包含开题报告+程序+论文+源代码+翻译+答辩稿PPT

本文选自计算机毕业设计http://myeducs.cn
论文文章部分只是部分简介,如需了解更多详情请咨询本站客服!QQ交谈QQ3710167

  • 下一篇资讯: 基于PB的图书管理系统
  • 原创论文

    设为首页 | 加入收藏 | 论文首页 |原创论文 |
    版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2020 myeducs.Cn www.myeducs.Cn All Rights Reserved 湘ICP备09003080号 常年法律顾问:王律师