数据库开发示例文档

合集下载

数据库设计文档实例

数据库设计文档实例

第1章数据库设计系统按照XXX企业协同办公系统的统一规划,运行在XXX企业协同办公网站的统一数据库中,采用了数据库的热备份技术,实现数据的有效和安全。

1.1概念结构设计1.1.1实体和属性的定义(1)公共模块员工信息(用户登录名、真实姓名、密码、公司邮箱、其他邮箱、MSN、QQ、手机、固定电话、所属部门、职位、角色),如图1.1所示。

职位(职位标识、职位名称),如图1.2所示。

员工信息登录名真实姓名固定电话密码公司邮箱其他邮箱MSN学位手机职位所属部门QQ角色职位职位标识 职位名称图1.1 员工信息实体图1.2 员工信息实体(以下实体没加图题,实际文档必须要有图题)部门(部门标识、部门名称)学历(学历标识、学历名称)意见与建议(提出人、提出时间、意见与建议主题、内容、附件)网站更新新闻(添加人、添加时间、新闻标题、更新时间)附件(所属位置、文件名、文件路径、上传时间)网站更新新闻 添加时间新闻标题添加人更新时间意见与建议 提出时间内容提出人附件主题学历学历标识 学历名称部门部门标识 部门名称(2)消息面板模块公告栏信息(公告标题、公告内容、公告发表人、发表时间、紧急状态)公告状态(状态标识、状态名称) 其中属性约束如下: 状态名称:普通,重要,紧急站内短信(发送人、接收人、留言标题、内容、发送时间、是否回复、是否读取、是否公开、消息状态、是否被发送者删除、是否被接收者删除)其中属性约束如下:是否回复:0=未回复,1=已回复;是否读取:0=未读,1=已读;是否公开:0=不公开,1=公开; 消息状态:普通,重要,紧急,重要紧急;是否被发送者(接收者)删除:0=否,1=是附件文件名称文件路径所属位置上传时间公告状态状态名称 状态标识公告信息 公告内容发表时间公告标题紧急状态发表人(3)事务管理模块事务(事务具体信息、事务提交人、事务处理人、事务计划开始时间、事务计划结束时间、事务添加时间、事务类型、事务原由、备注)事务信息(事务名、事务内容、添加时间、事务状态、重要性)站内短信发送人接收人留言内容消息状态发送时间是否回复是否公开留言标题是否读取是否被发送者删除是否被接收者删除事务事务类型事务信息事务处理事务原由计划开始时间计划结束时间备注信息事务提交人添加时间事务状态(事务名称、事务状态标志位)跟踪信息(对应事务、跟踪内容、跟踪时间、跟踪人、实际开始时间、实际结束时间、状态、结果描述、事务详细信息、备注)(4)计划管理模块目标(目标标题、目标制定人、接收人、要求结束时间、具体内容、附件、发起时间)计划(计划标题、目标标题、计划人、上级接收人、计划安排详细内容、计划开始时间、计划跟踪信息对应事务跟踪内容跟踪人事务详细信息实际开始时间实际结束时间跟踪时间备注结果描述 目标具体内容目标标题目标接收人发起时间要求结束时间附件目标制定人事务状态状态名称 状态标志位事务信息 事务状态 事务名添加时间事务重要事务内容结束时间、附件、计划状态、计划制定时间)计划状态(状态标识、状态名称) 其中属性约束如下:状态名称:初稿、审批中、批准、分配中、执行中周报(计划标题、报告人、接收人、针对计划的完成百分比、针对目标的累计完成百分比、报告内容、额外性工作、需要支持、风险和问题、下一个计划期、周报发送时间)(5)客户跟踪模块客户信息(客户名称、客户地址、客户电话、客户传真、客户邮箱、客户法定代表、客户被添加时间、客户被添加的用户、联系人、联系人职务、联系方式、公司地区、最后修改人、最后修改时间、经营范围、备注、客户性质)其中属性约束如下:客户性质:1=客户,2=渠道,3=客户和渠道周报报告内容计划标题接收人额外性工作针对计划的完成百分比针对目标的累计完成百分比报告人风险问题需要支持下个计划期发送时间计划状态状态标识 状态名称计划详细内容计划标题计划人计划开始时间上级接收人计划结束时间目标标题附件计划状态制定时间沟通信息(沟通名、沟通内容、时间、方式、沟通用户、沟通客户、客户方沟通人、备注)沟通方式(沟通方式名称、沟通方式标志位)项目状态(状态标识、状态名称)沟通方式标志位 方式名称沟通信息沟通名沟通内容沟通方式客户方沟通人沟通用户沟通客户沟通时间备注客户信息客户地址客户电话客户邮箱客户名称客户法定代表被添加时间客户传真被用户添加联系人联系人职务公司地区联系方式最后修改人客户性质 经营范围备注文件信息(文件所属、文件对应模块、文件原名、文件服务器名、上传时间、文件上传人、文件地址、备注)其中属性约束如下:文件所属于:1=沟通2=事务 3=跟踪客户跟踪权限(用户、是否管理员、是否高层领导) 其中属性约束如下:是否管理员:0=否,1=是; 是否高层:0=否,1=是(6)会议管理会议信息(会议时间、会议地点、会议标题、会议回复状态、会议参加人员、不参加理由、回复时间、回复状态的修改人、会议议程、会议时长)其中属性约束如下:会议回复状态:0=未回复,1=参加,2=不参加,3=不确定权限 是否管理员 是否高层对应用户文件信息文件所属文件原名上传时间文件对应模块文件上传人文件地址文件服务器名备注项目状态状态标识 状态名称会议记录(对应会议、主持人、发布时间、参加人员、会议小结、会议小结状态) 其中属性约束如下: 会议小结状态:0=无,1=有(7)人力资源模块请假申请(请假申请人、请假审批人、请假主题、请假形式、请假类型、请假开始时间、请假结束时间、请假总共时间、请假内容、请假申请时间、审批状态)其中属性约束如下:请假形式:0=事前请假,1=事后请假; 审批状态:0=未回复,1=不通过,2=通过会议记录 参加人员会议小结发布时间会议小结状态主持人对应会议会议信息会议地点会议标题参加人员会议时间不参加理由回复时间会议回复状态状态修改人会议议程 会议时长请假类型(类型标识符、类型名称)请假审批(对应请假申请、是否查阅、审批时间、审批意见、审批结果) 其中属性约束如下:是否查阅:0=未读,1=已读; 审批结果:0=未审批,1=未通过,2=已通过(8)权限模块角色(角色标识符、角色名称)操作(操作标识符、操作名称、备注)角色角色标识 角色名称请假审批 是否查阅审批意见对应申请审批结果审批时间请假类型类型标识 类型名称请假申请审批人请假主题开始时间申请人结束时间总共时间请假类型审批状态申请时间 请假内容(9)网站统计访客记录(访客对应用户、访客IP 地址、访客登录时间、离开时间、IP 对应物理地址)访客足迹(访客对应用户、之前页面UI 、当前页面UI 、本页面进入时间、本页面退出时间)访客足迹 前页面UI进入时间对应用户离开时间当前UI访客记录 IP 地址离开时间对应用户对于物理地址登录时间操作操作标识操作名称备注1.1.2 局部ER 模式设计员工局部E-R 图:意见与建议局部E-R 图:意见与建议 提出时间内容附件主题提出人员工信息1N员工信息登录名真实姓名固定电话密码公司邮箱其他邮箱MSN手机QQ职位职位标识职位名称职位 部门部门标识部门名称学历 学历学历标识 学历名称职位111111站内短信局部E-R 图:站内短信留言内容消息状态发送时间是否回复是否公开留言标题是否读取是否被发送者删除是否被接收者删除接收人员工信息发送人1n11公告信息公告内容发表时间公告标题紧急状态发表人员工信息 1 n目标局部E-R 图:目标具体内容目标标题发起时间要求结束时间附件制定人员工信息 接收人1 11N事务事务类型事务原由计划开始时间计划结束时间备注信息添加时间提出人员工信息处理人事务信息事务名添加时间 事务重要事务内容事务信息事务状态状态名称状态标志位事务状态11n 111 11计划局部E-R 图:计划详细内容计划标题计划开始时间计划结束时间目标标题附件制定时间计划人 员工信息 接收人计划状态 状态标识状态名称计划状态11n 111跟踪信息局部E-R 图:跟踪信息跟踪内容事务详细信息实际开始时间实际结束时间跟踪时间备注结果描述跟踪客户客户信息跟踪人员工信息1111客户信息客户地址客户电话客户邮箱客户名称客户法定代表被添加时间客户传真联系人联系人职务公司地区联系方式最后修改人客户性质 经营范围备注添加客户员工信息 11会议信息局部E-R 图:会议信息 会议地点会议标题会议时间不参加理由回复时间会议回复状态会议议程会议时长参加会议员工信息1N状态修改员工信息11沟通信息沟通名沟通内容沟通方式客户方沟通人沟通时间备注跟踪客户客户信息 N1 沟通人员工信息 11沟通方式标志位方式名称沟通方式11请假申请请假主题开始时间结束时间 总共时间审批状态 申请时间请假内容审批人员工信息11请假人11请假类型类型标识类型名称请假人1 1请假审批是否查阅审批意见对应申请审批结果 审批时间审批11访客足迹前页面UI进入时间离开时间当前UI员工信息 1访客信息 1 访客记录 IP 地址离开时间对于物理地址登录时间访客信息111.1.3 全局ER 模式设计员工信息职位部门 学历学历 所属职位 所在部门 角色角色 权限 操作 拥有 对应 站内短信 接收人发送人公告状态 公告信息 状态 发布人事务 事务信息 跟踪信息状态 事务状态 具体跟踪目标计划计划状态 周报 状态制定 反馈反馈人制定人处理人制定人客户信息 沟通信息 沟通方式项目状态 合作项目信息状态方式 沟通 会议信息会议记录小结 请假申请请假审批请假类型类型 审批审批请假员工信息主持参加1 1 11 1 mn 11 1 1 1n11n1n n 111 1n nm11 1 1n 11nmn11 1n 1 1n11 1 111 11 nn11 nnm1 n11 访客足迹意见与建议网站更新新闻访客作者员工信息 提交人n 1n n 111.2逻辑结构设计1.2.1模式员工信息表记录员工登陆账号和联系方式等基本信息,如表1.1所示。

数据库设计文档(样例)

数据库设计文档(样例)

数据库设计文档(样例)XXXX 系统数据库设计说明书精品资料文档信息:文档名称“传输网管数据统一自动备份系统”概要设计说明书描述该文档描述传输网络统一自动备份系统的详细功能定义。

所有设计人员、开发人员、测试人员以及其他团队成员都应该以该文档作为产品的功能定义,并衍生出其他文档。

负责人谢亚龙张亚宾状态 1.1 版文档变更历史:时间版本号修改人章节描述2008-11-7 1.0 所有章节创建初稿2008-12-19 1.1 部分改动对数据中部分做了修改文档路径:审核结果:审核人审核时间意见签名档备注目录1 引言 (5)1.1 编写目的 (6)1.2 背景 (6)1.3 定义 (6)1.4 参考资料 (7)2 数据库物理模型 (8)2.1 整体设计. (8)2.2 角色与权限管理 (9)2.3 消息管理. (11)2.4 用户信息. (13)2.5 分站信息表 (15)2.6 备份计划. (16)2.7 备份文件. (18)精品资料1 引言随着时代的进步,计算机技术飞速发展,电子信息技术在各行各业起着越来越重要的作用。

其中,应用最广泛的就是数据库技术。

对一个企业来说,数据的安全关系着整个企业的发展,如何更加安全的保护这些数据,是当今的一个研究热点。

为了保护数据安全和提高数据的持续可用性,企业要从RAID 保护、冗余结构、数据备份、故障预警等多方面考虑。

对于关键业务应用,如电信计费系统、银行营业系统等,则要采用异地数据备份的保护措施。

应该说,异地自动备份是数据安全性和业务连续性的最高保护级别。

数据存放在一个地方总存在风险,况且人为的逻辑错误也有可能破坏数据,因而,可以采用高性能、完善的备份系统,将数据拷贝下来,存放到价廉的存储介质上,这是数据安全的基本保证。

企业最常使用的备份介质包括:磁盘、光盘塔和磁带库等。

同时,在系统或应用出现故障时,为了保证本地业务的不中断运行,主机集群是一个较好的方案。

现在,随着企业对数据可用性认识的加深,关键业务不允许出现哪怕是1% 的灾难威胁,因而,异地数据备份已成为数据可用性解决方案的重要组成部分。

6数据仓库开发实例

6数据仓库开发实例
采访:钻研选定的业务过程(理解使其运作所需 的分析、数据模型和技术)
分析:业务过程相关的数据资源
归档
对于Pub公司:选定“销售”业务过程后, 通过采访了解其与销售分析相关的问题, 如通过什么方式销售、有哪些销售地区等。
收集项目需求
基本业务状况
➢ Pub公司在美国各地均有出版社,出版社负责联系作 者、出版图书,已出版的图书将由各地的代销书店进 行销售。
说明 出版社编号 出版社名
所在市 所在州 所在国
建立多维数据模型
出版社
• 出版社维度可以直接包含出版社名、市、州、国家等 属性
DimPublisher
属性名称
功能描述
pub_id
出版社编号
pub_name
出版社名称
pub_city
城市
pub_state

pub_country
国家
其中 pub_name、 pub_city、 pub_state、 pub_country 形成层次。
作者
• 作者维度可以直接包含作者名等属性
DimAuthor
属性名称
功能描述
au_id au_name
作者编号
作者名 au_fname + au_lname
建立多维数据模型
图书作者关系
出版日期
出版社
订单
图书
图书作者关系
作者
书店
建立多维数据模型
图书作者关系
字段名称 au_id title_id
说明 作者编号 图书编号
数据仓库开发实例
案例背景
Pub是美国的一家图书出版公司,希望构建数据 仓库。其中销售部门的需求比较急迫,希望能在 短时间内实现对销售业绩的分析。

数据库开发过程范文

数据库开发过程范文

数据库开发过程范文1.需求分析:在数据库开发的第一步中,开发团队与客户一起讨论和理解需求。

这个阶段的目标是确定数据库的主要功能和目的。

开发团队将与客户一起分析业务需求,了解系统的业务流程,明确数据的种类和存储要求。

2.数据建模:在这个阶段,开发团队将根据需求分析的结果设计数据模型。

数据模型是描述数据库结构的图形化表示。

最常用的数据模型是关系模型,它使用表来表示实体和关系。

开发团队可以使用建模工具如ER 图或UML来设计数据模型。

在设计过程中,团队需要确定实体、属性和关系,并确保数据模型具有良好的规范性、正确性和完整性。

3.数据库设计:在数据库设计阶段,开发团队将根据数据模型来设计数据库的结构。

这个阶段的目标是定义表、字段、键和关系。

开发团队将根据业务需求和性能要求来选择适当的数据类型、约束和索引。

4. 数据库实现:在这个阶段,开发团队将基于数据库设计创建数据库。

他们将使用数据库管理系统(如MySQL、Oracle等)来创建表、字段和索引。

开发团队还将编写存储过程、触发器和视图等数据库对象。

在创建数据库的过程中,团队需要关注数据库的性能、安全性和可扩展性。

5.数据库测试:在数据库开发的最后一步中,开发团队将对数据库进行测试。

他们将验证数据库是否满足需求,并测试数据库的功能、性能和安全性。

开发团队将执行各种测试,如单元测试、集成测试和性能测试。

如果测试发现了问题,开发团队将做出相应的修改。

在整个数据库开发过程中,团队需要进行沟通和协作,并按照计划执行每个步骤。

同时,他们还需要关注数据库的可用性、可维护性和数据质量。

总之,数据库开发是一个综合性的过程,它涉及到从需求分析到数据库实现和测试的一系列步骤。

通过合理的规划和设计,可以帮助开发团队创建高质量和高性能的数据库。

access数据库开发典型范例

access数据库开发典型范例

access数据库开发典型范例篇一:sql经典案例hai6606_cn | 四级精妙Sql语句(总结以前的所有精华)asc 按升序排列desc 按降序排列下列语句部分是Mssql语句,不可以在access中使用。

SQL分类:DDL—数据定义语言(CREATE,ALTER,DROP,DECLARE)DML—数据操纵语言(SELECT,DELETE,UPDATE,INSERT)DCL—数据控制语言(GRANT,REVOKE,COMMIT,ROLLBACK)首先,简要介绍基础语句:1、说明:创建数据库CREATE DATABASE database-name2、说明:删除数据库drop database dbname3、说明:备份sql server--- 创建备份数据的 deviceUSE masterEXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1.dat' --- 开始备份BACKUP DATABASE pubs TO testBack4、说明:创建新表create table tabname(col1 type1 [not null] [primary key],col2type2 [not null],..) 根据已有的表(转载于: 池锝范文网:access数据库开发典型范例)创建新表:A:create table tab_new like tab_old (使用旧表创建新表)B:create table tab_new as select col1,col2… from tab_olddefinition only5、说明:删除新表drop table tabname6、说明:增加一个列Alter table tabname add column col type注:列增加后将不能删除。

数据库设计示例文档(完整)物理数据库设计

数据库设计示例文档(完整)物理数据库设计

数据库设计示例文档(完整)物理数据库设计数据库设计示例文档(完整)物理数据库设计D2小组网上培训系统物理数据库设计陈俊华、董磊、陈俊娜、董昊、海霞、郭云龙1(针对选定的DBMS,生成基表由于本系统主要架构在windows操作系统之上,加之本小组成员对SQLServer 比较熟悉,且系统有并发操作的要求,因此决定采用SQLServer2000 DBMS系统。

2(选择合适的文件组织(Heap, Hash, ISAM, B+ Tree, Clustered) 基于在System’s Specification中对系统性能的要求:1)非峰值时,数据查找、更新、存储的平均时间低于1秒2)在峰值时,数据查找、更新、存储的平均时间低于5秒采用SQL Server 2000默认的文件组织结构3(选择建立适当的索引基于在System’s Specification中对事务处理的分析:1)学生情况检索每天50次2)教师情况检索每天10次3)课程检索每天100次4)常见问题检索每天200次5)资料查询每天200次6)试题检索每天50次7)成绩查询每天50次在SQL Server 2000里,在数据库关系图中为表定义一个主键将自动创建主键索引;由于要频繁查询学生姓名、教师姓名、课程名称、题目、成绩,因此在各表的对应列上创建第二索引。

4(定义全局约束根据需求分析,本网上培训系统不允许同一名学生在一个学期中选课超过6 门以上。

5(定义视图用户视图主要是学生视图和教师视图。

6(定义用户访问控制规则用户在进入系统之前必须提交相应的用户名和口令,系统将根据不同的用户而授予不同的权限。

以下是建表语句:1)学生表create table student(StudentID Int(15) not null identity(1,1), StudentName Varchar(20) not null,StudentPassword Varchar(10) not null,StudentStatus Char(1) not null,StudentSex Char(1) not null,EnrollingDate Datetime not null,E-mail Varchar(30),Constraint pk_student primary key clustered(StudentID) )索引:create index student_StudentName on student(StudentName)2)教师表create table teacher (TeacherID Int(15) not null identity(1,1), TeacherName Varchar(20) not null,TeacherPassword Varchar(10) not null,TeacherState Char(1) not null,TeacherSex Char(1) not null,TelNO Int(12),E-mail Varchar(30),Constraint pk_teacher primary key clustered(TeacherID) )索引:create index teacher_TeacherName on teacher(T eacherName)3)课程表create table course (CourseID Int not null identidy(1,1), CourseName Varchar(100) not null,MajorID Int,CourseType Int,CourseCreated Datetime not null,CourseStart Datetime not null,CourseEnd Datetime not null,CourseTime Int not null,CourseScore Int not null,CourseState Char(1) not null,CourseIntro Text,Constraint pk_course primary key clustered(Course_ID) )索引:create index course_CourseName on course(CourseName)4)课堂表create table Classroom (SerialNo Int not null identity(1,1), ClassBegin Datetime,ClassEnd Datetime,onlineBegin Datetime not null, onlineEnd Datetime,Constraint pk_course primary key clustered(SerialNo) )5)申请课程表create table application (ApplyID Int not null identity(1,1), StudentID Int not null, ApplyDate Int not null, CourseID Datetime not null, ApplyType Char(1) not null, ApplyState Char(1) not null, ApplyContent Varchar(200), Constraint pk_course primary key clustered(ApplyID), Constraint ApplicationCourseT ooMuch CHECK(NOT EXISTS(SELECT StudentIDFROM applicationGROUP BY StudentIDHAVING COUNT(*)>6))FOREIGN KEY (StudentID) REFERENCES Student (StudentID) ON UPDATE CASCADE ON DELETE NO ACTION, FOREIGN KEY (CourseID) REFERENCES Course (CourseID)ON UPDATE CASCADE ON DELETE NO ACTION )6)课程学生表create table courseStudent (CourseID Int not null, StudentID Int not null, SerialNo Int not null, StudentType Char(1) not null, StudentScore Number(3), StudentGrade Number(3),StudentResult Number(3)Constraint pk_courseStudent primary key clustered(CourseID, StudentID,SerialNo),FOREIGN KEY (CourseID) REFERENCES Course (CourseID)ON UPDATE CASCADE ON DELETE NO ACTION,FOREIGN KEY (StudentID) REFERENCES Student (StudentID) ON UPDATE CASCADE ON DELETE NO ACTION, FOREIGN KEY (SerialNo) REFERENCES Classroom (SerialNo)ON UPDATE CASCADE ON DELETE NO ACTION )7)课程教师表create table courseTeacher (CourseID Int not null,TeacherID Int not null,SerialNo Int not null,StartDate Datetime,EndDate Datetime,TeacherState Datetime not null,Constraint pk_courseT eacher primary key clustered(CourseID, TeacherID,SerialNo),FOREIGN KEY (CourseID) REFERENCES Course (CourseID)ON UPDATE CASCADE ON DELETE NO ACTION, FOREIGN KEY (TeacherID) REFERENCES Teacher (TeacherID)ON UPDATE CASCADE ON DELETE NO ACTION, FOREIGN KEY (SerialNo) REFERENCES Classroom(SerialNo)ON UPDATE CASCADE ON DELETE NO ACTION )8)测试表create table test (TestID Int not null,TestName Varchar(100) not null,CourseID Int not null,TestDate Datetime not null,TestTime Int not null default 0, TestType Int not null,TeacherID Int,TestState Char(1) not null,PaperID Int not null,Constraint pk_test primary key clustered(TestID), FOREIGN KEY (CourseID) REFERENCES Course (CourseID)ON UPDATE CASCADE ON DELETE SET NULL )9)试卷表create table testPaper (PaperID Int not null default0 identity(1,1),TestID Int not null,SubjectID Int not null,ObjectAnwser Varchar(255) not null,SubjectAnswer Text,SubjectScore number(3) not null default 0 Constraint pk_testPaper primary key clustered (PaperID), FOREIGN KEY (TestID) REFERENCES Test (TestID)ON UPDATE CASCADE ON DELETE NO ACTION, FOREIGN KEY (SubjectID) REFERENCES Subject (SubjectID)ON UPDATE CASCADE ON DELETE NO ACTION )索引:create index testPaper_SubjectID on testPaper (SubjectID)10)测试学生表create table testStudent (Student_ID Int not null,Paper_ID Int not null,Constraint pk_testStudent primary key clustered (StudentID, PaperID) FOREIGN KEY (StudentID) REFERENCES Student (StudentID)ON UPDATE CASCADE ON DELETE NO ACTION, FOREIGN KEY (PaperID) REFERENCES TestPaper (PaperID)ON UPDATE CASCADE ON DELETE NO ACTION, )11)测试结果表create table testResult (TestID Int not null,StudentID Int not null,CourseID Int not null,TestDone Char(1) not null,ObjectScore Number(4) not null,SubjectScore Number(4) not null default 0, TestScore Number(4) not null default 0, TestMemo Char(1) not null, Constraint pk_testResult primary key clustered (TestID, StudentID, CourseID),FOREIGN KEY (TestID) REFERENCES Test (TestID)ON UPDATE CASCADE ON DELETE NO ACTION, FOREIGN KEY (StudentID) REFERENCES Student (StudentID)ON UPDATE CASCADE ON DELETE NO ACTION, FOREIGNKEY (CourseID) REFERENCES Course (CourseID)ON UPDATE CASCADE ON DELETE NO ACTION, )索引:create index testResult_TestScore on testResult(T estScore)12)题库表create table subject (SubjectID Int not null identity(1,1), SubjectType Char(1) not null, SubjectLever Int not null,SubjectContents Varchar(255) not null,SubjectAnswer Text,ObjectAnwser Varchar(255) not null,Constraint pk_subject primary key clustered (SubjectID) )13)练习表create table exercise (ExerciseID Int not null identity(1,1), StudentID Int not null,SubjectID Int not null,TeacherID Int,HandinTime Datetime not null,JudgeState Char(1) not null,JudgeTime Datetime,Grade Int,StudentAnswer Text not null,Constraint pk_exercise primary key clustered (ExerciseID), FOREIGN KEY (StudentID) REFERENCES Student (StudentID) ON UPDATE CASCADE ON DELETE NO ACTION, FOREIGN KEY (SubjectID) REFERENCES Subject (SubjectID)ON UPDATE CASCADE ON DELETE NO ACTION, FOREIGN KEY (TeacherID) REFERENCES Teacher (TeacherID)ON UPDATE CASCADE ON DELETE NO ACTION, )。

完整版)数据库设计文档模板

完整版)数据库设计文档模板

完整版)数据库设计文档模板文档编号:2011-6-14 版本:A1 密级:商密编写部门:XXX 项目名称:时代集团产品跟踪平台项目来源:DR-RD-020(V1.1) 时代集团数据库设计说明书内部资料请勿外传)版权所有,不得复制日期:(待填写)引言本文档旨在描述时代集团产品跟踪平台的数据库设计,包括数据库结构、表结构、字段定义等内容,以便于开发人员进行系统开发和维护。

术语表本文档中涉及到的术语及其定义如下:XXX:指本公司,下同。

产品跟踪平台:指时代集团开发的用于追踪产品生命周期的系统。

数据库结构:指数据库中各个表之间的关系和连接方式。

表结构:指数据库中每个表的字段定义和数据类型等信息。

字段定义:指数据库中每个表中各个字段的含义和数据类型等信息。

参考资料本文档参考了以下资料:DR-RD-020(V1.1) 时代集团产品跟踪平台需求文档数据库设计规范文档数据库环境说明本文将介绍数据库的命名规则、逻辑设计和物理设计。

这些设计将有助于确保数据库的有效性和可靠性。

数据库的命名规则为了方便管理和维护,数据库中的各种对象都需要遵循一定的命名规则。

例如,表名应该简洁明了,能够准确反映其所代表的数据。

此外,命名规则还应该遵循一定的规范,例如使用下划线分隔单词等。

逻辑设计逻辑设计是数据库设计的第一步,它涉及到如何组织和表示数据。

在逻辑设计中,需要考虑到数据的结构、关系和约束条件等因素。

通过逻辑设计,可以确保数据库的数据结构清晰明了,易于管理和维护。

物理设计物理设计是数据库设计的第二步,它涉及到如何将逻辑设计转化为实际的数据库结构。

在物理设计中,需要考虑到数据的存储方式、索引和分区等因素。

通过物理设计,可以确保数据库的性能和可靠性。

表汇总在数据库中,表是最基本的数据组织方式。

表汇总是对所有表的一个概览,可以帮助用户快速了解数据库中包含哪些表以及它们之间的关系。

表[X]:[XXX表]表[X]代表某个具体的表,其中包含了一些关键信息。

数据库设计实例

数据库设计实例

数据库设计实例介绍如下:
以下是一个简单的数据库设计实例,以一个在线商店为例:
1.用户(User)表
•用户ID(User_ID)
•用户名(User_Name)
•密码(Password)
•电子邮件(Email)
•地址(Address)
•联系方式(Contact)
2.商品(Product)表
•商品ID(Product_ID)
•商品名称(Product_Name)
•商品价格(Product_Price)
•商品描述(Product_Description)
3.订单(Order)表
•订单ID(Order_ID)
•用户ID(User_ID)
•订单日期(Order_Date)
•订单状态(Order_Status)
4.订单明细(Order_Detail)表
•订单明细ID(Order_Detail_ID)
•订单ID(Order_ID)
•商品ID(Product_ID)
•商品数量(Product_Quantity)
•商品单价(Product_Unit_Price)
在这个数据库设计中,用户(User)表记录了用户的基本信息,商品(Product)表记录了商品的基本信息,订单(Order)表记录了用户下单的基本信息,订单明细(Order_Detail)表记录了订单中商品的详细信息。

需要注意的是,数据库设计需要根据具体的业务需求进行设计,包括表的字段、表之间的关系等,以确保数据库能够满足业务需求,并能够保证数据的准确性和一致性。

一个典型的数据库设计实例

一个典型的数据库设计实例

..Spbh char PSpmc varchar 2t1Sslb char 8Jg money 8sI url 4bmhh char4xfzje money 8kcxxbh chark cl intZje Money 6.create database gl xt( name os dat,fil ename='D:\pos dat.andf',size-5,maxsize-20,fiiegrowth- 1)LOG on( narne=pos l og,filenarne='D:\pos log.ldf,size-5,create table bin(bmbh char(8) not nullconstraint PK biroprimary key,bmmc char(4)not null)g°create table sp(spbh char(8) riot nullconstraint PK cno primary key,apmc varchar(20) not null ,sslb char(8) not null,st int riot null,jg money not null)4. create table gys(gysbh chart8) not nullconstraint BK dnoprimary gysmc chait8)not null,dz varc h art20) riotnull,yzbm char( P)net null,dhhmvarchar( 15) not null, sh varchar(3) riotnull,yhzh varchaq20) not null,. key,.khyh char(8›) notnull ,lxr chart 8)not null,bei zhutext null5.create table hy(hybh cha58) riot nut Iconstrai nt PK eno Jirimory key.hyname char( 6)notrim I ,sex chur(2) check CK hy sex i n ( ’’ , ’V ’) n or nul I , sfzh v arch a520) ncit null,xfzje money not null,j I int not null6.create tableyg(ygbh chart 8)not nu I Iconstraint PK fire primary key,ygnamc char(8) not iiul I,sex ch or(2 ) check C'K yg sex in ( ’’, k ’) not null, zvv cha rfP) not rim I,k I v arch ar(20) riot null,q xjb charl 4) not ml I,sfzh v archa518) not riu II,ss1›mbh chai(8) not inn Iconst rai nt FK ano foreign key references bin( bmhh)7.create table rk(rkbh c ha r(8) not nul Iconst rai nt PK quo primary key,xsjg m oiicy not n uI I,rkrq datetimc notnut I,spbh chart 8)not nullconstraint FK bno foreign key referencessp(spbh), ywybh charf 8) not nullconstraint FK cue foreign key references yg(ygbh J,j I tl w ch an 2) notnull,rkjg moneynot null,w bhchart 8) not nut Iconstraint FK duo foreign key references gyst gysbh),zje mtiiicy not nuI I,sl iii t not null8.create tablezhuxx (xsrqdatetime not ml I,zje money not null,constraint FK erm foreign key re fcrcricesfry(hybh),syybh chart 8) not nullconstraint FK fno foreign key re fereia ces yg( ygbh)9. create table zixx( spbh cha9 8) not nullconstraint FK gun foreign key references sp( spbh),sl i nt not null,d j money notnull,zkblchar( 10) not null,je money not ntill,g*10. create table kc(kcxxbh char(8) not n\tl Iconstraint PK Jin o(Primary key,spbh char(8)not nut Iconstraint FK ino foreign key re fereiices sp(spbh), kcl i ni notnullI.CREATE TIIlCiGER tri ger sION rkafter insertClN zixxafterdelete ASupdate k cset k cl=kcl -(sel ect st f mm deletedJ where spbh=(se l ect spbh from deleted)。

数据库开发及工程实例

数据库开发及工程实例

实验一、ACCESS 2000数据库的创建目 的:熟悉ACCESS 2000数据库的操作,对ACCESS 2000有全面的认识具体步骤:1、 打开ACCESS 20002、 使用数据库向导创建数据库(如图2-1)图2-1 3、 在新建对话框中,选择“联系管理”,单击确定 (如图2-2)图 2-24、 选择适当的目录,保存数据库文件。

注意,ACCESS 的数据库文件的后缀名为mdb 。

(如图 2-3)U n R e g i s t er e d图 2-3 5、 在弹出的数据库向导中,按照提示,配置数据库。

(如图 2-4) 图 2-46、 数据库建立完毕。

可以看到数据库的切换面板 (如图 2-5) Un R e g i s t er ed图 2-5U n R e g i s t e r e d实验二、ACCESS 2000数据表的设计与管理目 的:学会用设计视图建立表、管理表具体步骤:1、 打开ACCESS ,选择“空数据库”。

(如图 2-6)图 2-62、 更改合适的名称,选择保存路径。

(如图 2-7)图 2-73、 创建数据库后,双击“使用设计器创建表”。

(如图2-8)U n R e g i s t e r e d图2-84、 对话框分为两个部分,上半部分是表设计器,下半部分用来定义表中字段的属性。

表的设计器其实就是一个数据表,只是在这个数据表中只有“字段名称”、“数据类型”和“说明”三列,当我们要建立一个表的时候,只要在设计器“字段名称”列中输入表中需要字段的名称,并在“数据类型”列中定义那些字段的“数据类型”就可以了。

设计器中的“说明”列中可以让表的制作人对那些字段进行说明,以便以后修改表时能知道当时为什么设计这些字段。

(如图 2-9) 图2-9 5、 现在我们就用表设计器来建立一个记录订单信息的表。

首先要知道在“订单”表中需要包括的信息,在这个表中一定要有“订单号”、“订货单位”、“货物名称”、“订货数量”、“经手人”、“订货日期”等信息,在表设计器的“字段名称”列中按顺序输入这些字段的名称,表就初步建U n R e g i st e r e d好了。

数据库设计文档实例

数据库设计文档实例

第1章数据库设计系统按照XXX企业协同办公系统的统一规划,运行在XXX企业协同办公网站的统一数据库中,采用了数据库的热备份技术,实现数据的有效和安全。

1.1概念结构设计1.1.1实体和属性的定义(1)公共模块员工信息(用户登录名、真实姓名、密码、公司邮箱、其他邮箱、MSN、QQ、手机、固定电话、所属部门、职位、角色),如图1.1所示。

职位(职位标识、职位名称),如图1.2所示。

员工信息登录名真实姓名固定电话密码公司邮箱其他邮箱MSN学位手机职位所属部门QQ角色职位职位标识 职位名称图1.1 员工信息实体图1.2 员工信息实体(以下实体没加图题,实际文档必须要有图题)部门(部门标识、部门名称)学历(学历标识、学历名称)意见与建议(提出人、提出时间、意见与建议主题、内容、附件)网站更新新闻(添加人、添加时间、新闻标题、更新时间)附件(所属位置、文件名、文件路径、上传时间)网站更新新闻 添加时间新闻标题添加人更新时间意见与建议 提出时间内容提出人附件主题学历学历标识 学历名称部门部门标识 部门名称(2)消息面板模块公告栏信息(公告标题、公告内容、公告发表人、发表时间、紧急状态)公告状态(状态标识、状态名称) 其中属性约束如下: 状态名称:普通,重要,紧急站内短信(发送人、接收人、留言标题、内容、发送时间、是否回复、是否读取、是否公开、消息状态、是否被发送者删除、是否被接收者删除)其中属性约束如下:是否回复:0=未回复,1=已回复;是否读取:0=未读,1=已读;是否公开:0=不公开,1=公开; 消息状态:普通,重要,紧急,重要紧急;是否被发送者(接收者)删除:0=否,1=是附件文件名称文件路径所属位置上传时间公告状态状态名称 状态标识公告信息 公告内容发表时间公告标题紧急状态发表人(3)事务管理模块事务(事务具体信息、事务提交人、事务处理人、事务计划开始时间、事务计划结束时间、事务添加时间、事务类型、事务原由、备注)事务信息(事务名、事务内容、添加时间、事务状态、重要性)站内短信发送人接收人留言内容消息状态发送时间是否回复是否公开留言标题是否读取是否被发送者删除是否被接收者删除事务事务类型事务信息事务处理事务原由计划开始时间计划结束时间备注信息事务提交人添加时间事务状态(事务名称、事务状态标志位)跟踪信息(对应事务、跟踪内容、跟踪时间、跟踪人、实际开始时间、实际结束时间、状态、结果描述、事务详细信息、备注)(4)计划管理模块目标(目标标题、目标制定人、接收人、要求结束时间、具体内容、附件、发起时间)计划(计划标题、目标标题、计划人、上级接收人、计划安排详细内容、计划开始时间、计划跟踪信息对应事务跟踪内容跟踪人事务详细信息实际开始时间实际结束时间跟踪时间备注结果描述 目标具体内容目标标题目标接收人发起时间要求结束时间附件目标制定人事务状态状态名称 状态标志位事务信息 事务状态 事务名添加时间事务重要事务内容结束时间、附件、计划状态、计划制定时间)计划状态(状态标识、状态名称) 其中属性约束如下:状态名称:初稿、审批中、批准、分配中、执行中周报(计划标题、报告人、接收人、针对计划的完成百分比、针对目标的累计完成百分比、报告内容、额外性工作、需要支持、风险和问题、下一个计划期、周报发送时间)(5)客户跟踪模块客户信息(客户名称、客户地址、客户电话、客户传真、客户邮箱、客户法定代表、客户被添加时间、客户被添加的用户、联系人、联系人职务、联系方式、公司地区、最后修改人、最后修改时间、经营范围、备注、客户性质)其中属性约束如下:客户性质:1=客户,2=渠道,3=客户和渠道周报报告内容计划标题接收人额外性工作针对计划的完成百分比针对目标的累计完成百分比报告人风险问题需要支持下个计划期发送时间计划状态状态标识 状态名称计划详细内容计划标题计划人计划开始时间上级接收人计划结束时间目标标题附件计划状态制定时间沟通信息(沟通名、沟通内容、时间、方式、沟通用户、沟通客户、客户方沟通人、备注)沟通方式(沟通方式名称、沟通方式标志位)项目状态(状态标识、状态名称)沟通方式标志位 方式名称沟通信息沟通名沟通内容沟通方式客户方沟通人沟通用户沟通客户沟通时间备注客户信息客户地址客户电话客户邮箱客户名称客户法定代表被添加时间客户传真被用户添加联系人联系人职务公司地区联系方式最后修改人客户性质 经营范围备注文件信息(文件所属、文件对应模块、文件原名、文件服务器名、上传时间、文件上传人、文件地址、备注)其中属性约束如下:文件所属于:1=沟通2=事务 3=跟踪客户跟踪权限(用户、是否管理员、是否高层领导) 其中属性约束如下:是否管理员:0=否,1=是; 是否高层:0=否,1=是(6)会议管理会议信息(会议时间、会议地点、会议标题、会议回复状态、会议参加人员、不参加理由、回复时间、回复状态的修改人、会议议程、会议时长)其中属性约束如下:会议回复状态:0=未回复,1=参加,2=不参加,3=不确定权限 是否管理员 是否高层对应用户文件信息文件所属文件原名上传时间文件对应模块文件上传人文件地址文件服务器名备注项目状态状态标识 状态名称会议记录(对应会议、主持人、发布时间、参加人员、会议小结、会议小结状态) 其中属性约束如下: 会议小结状态:0=无,1=有(7)人力资源模块请假申请(请假申请人、请假审批人、请假主题、请假形式、请假类型、请假开始时间、请假结束时间、请假总共时间、请假内容、请假申请时间、审批状态)其中属性约束如下:请假形式:0=事前请假,1=事后请假; 审批状态:0=未回复,1=不通过,2=通过会议记录 参加人员会议小结发布时间会议小结状态主持人对应会议会议信息会议地点会议标题参加人员会议时间不参加理由回复时间会议回复状态状态修改人会议议程 会议时长请假类型(类型标识符、类型名称)请假审批(对应请假申请、是否查阅、审批时间、审批意见、审批结果) 其中属性约束如下:是否查阅:0=未读,1=已读; 审批结果:0=未审批,1=未通过,2=已通过(8)权限模块角色(角色标识符、角色名称)操作(操作标识符、操作名称、备注)角色角色标识 角色名称请假审批 是否查阅审批意见对应申请审批结果审批时间请假类型类型标识 类型名称请假申请审批人请假主题开始时间申请人结束时间总共时间请假类型审批状态申请时间 请假内容(9)网站统计访客记录(访客对应用户、访客IP 地址、访客登录时间、离开时间、IP 对应物理地址)访客足迹(访客对应用户、之前页面UI 、当前页面UI 、本页面进入时间、本页面退出时间)访客足迹 前页面UI进入时间对应用户离开时间当前UI访客记录 IP 地址离开时间对应用户对于物理地址登录时间操作操作标识操作名称备注1.1.2 局部ER 模式设计员工局部E-R 图:意见与建议局部E-R 图:意见与建议 提出时间内容附件主题提出人员工信息1N员工信息登录名真实姓名固定电话密码公司邮箱其他邮箱MSN手机QQ职位职位标识职位名称职位 部门部门标识部门名称学历 学历学历标识 学历名称职位111111站内短信局部E-R 图:站内短信留言内容消息状态发送时间是否回复是否公开留言标题是否读取是否被发送者删除是否被接收者删除接收人员工信息发送人1n11公告信息公告内容发表时间公告标题紧急状态发表人员工信息 1 n目标局部E-R 图:目标具体内容目标标题发起时间要求结束时间附件制定人员工信息 接收人1 11N事务事务类型事务原由计划开始时间计划结束时间备注信息添加时间提出人员工信息处理人事务信息事务名添加时间 事务重要事务内容事务信息事务状态状态名称状态标志位事务状态11n 111 11计划局部E-R 图:计划详细内容计划标题计划开始时间计划结束时间目标标题附件制定时间计划人 员工信息 接收人计划状态 状态标识状态名称计划状态11n 111跟踪信息局部E-R 图:跟踪信息跟踪内容事务详细信息实际开始时间实际结束时间跟踪时间备注结果描述跟踪客户客户信息跟踪人员工信息1111客户信息客户地址客户电话客户邮箱客户名称客户法定代表被添加时间客户传真联系人联系人职务公司地区联系方式最后修改人客户性质 经营范围备注添加客户员工信息 11会议信息局部E-R 图:会议信息 会议地点会议标题会议时间不参加理由回复时间会议回复状态会议议程会议时长参加会议员工信息1N状态修改员工信息11沟通信息沟通名沟通内容沟通方式客户方沟通人沟通时间备注跟踪客户客户信息 N1 沟通人员工信息 11沟通方式标志位方式名称沟通方式11请假申请请假主题开始时间结束时间 总共时间审批状态 申请时间请假内容审批人员工信息11请假人11请假类型类型标识类型名称请假人1 1请假审批是否查阅审批意见对应申请审批结果 审批时间审批11访客足迹前页面UI进入时间离开时间当前UI员工信息 1访客信息 1 访客记录 IP 地址离开时间对于物理地址登录时间访客信息111.1.3 全局ER 模式设计员工信息职位部门 学历学历 所属职位 所在部门 角色角色 权限 操作 拥有 对应 站内短信 接收人发送人公告状态 公告信息 状态 发布人事务 事务信息 跟踪信息状态 事务状态 具体跟踪目标计划计划状态 周报 状态制定 反馈反馈人制定人处理人制定人客户信息 沟通信息 沟通方式项目状态 合作项目信息状态方式 沟通 会议信息会议记录小结 请假申请请假审批请假类型类型 审批审批请假员工信息主持参加1 1 11 1 mn 11 1 1 1n11n1n n 111 1n nm11 1 1n 11nmn11 1n 1 1n11 1 111 11 nn11 nnm1 n11 访客足迹意见与建议网站更新新闻访客作者员工信息 提交人n 1n n 111.2逻辑结构设计1.2.1模式员工信息表记录员工登陆账号和联系方式等基本信息,如表1.1所示。

基于 SQLite 开发的数据库示例

基于 SQLite 开发的数据库示例

Option ExplicitPublic Decla re Function PathFileExists Lib "shlwapi.dll" Alias _"PathFileExistsA" (ByVal pszPath As String) As Long Private Declare Function GetWindowsDirectory Lib "kernel32" Alias _"GetWindowsDirectoryA" (ByVal lpBuffer As String, _ByVal nSize As Long) As LongGlobal cnn As cConnectionGlobal DBName As StringGlobal username As StringGlobal AccessLevel As IntegerSub Main()If App.PrevInstance = True Then End'检查确保FreeImage.dll 存在于system32 目录中,不存在则自动复制...Dim strsrc As String, strdest As StringDim Path As String, strSave As StringstrSave = String$(200, Chr$(0))Path = Left$(strSave, GetWindowsDirectory(strSave, Len(strSave))) + "\system32"If PathFileExists(Path & "\FreeImage.dll") = 0 Thenstrsrc = A pp.Path & "\FreeImage.dll"If PathFileExists(strsrc) <> 0 Thenstrdest = Path & "\FreeImage.dll"FileCopy strsrc, strdestElseEndEnd IfEnd If'---------------------------------DBName = App.Path & "\sample.db"'---------------------------------If PathFileExists(DBName) = 0 ThenMsgBox "SQLite 数据库'" & DBName & "' 不存在!", _vbCritical, "提示"ShutDownExit SubEnd IfSet cnn = New cConnectioncnn.OpenDB DBNameDim fLogin As New frmLoginfLogin.Show vbModalIf Not fLogin.blnOK ThenEndElseMDIForm1.ShowEnd IfEnd Sub'获取新IDPublic Function GetNewID(ByVal sTbl As String, ByVal sFld As String) As Long Dim Rs As cRecordsetSet Rs = cnn.OpenRecordset("select [" & sFld & "] from [" & sTbl & "] order by [" & sFld & "] desc")If Not Rs.BOF And Not Rs.EOF ThenIf Not IsNull(Rs.Fields(0).Value) ThenGetNewID = Rs.Fields(0).Value + 1ElseGetNewID = 1End IfElseGetNewID = 1End IfSet Rs = NothingEnd FunctionPublic Sub ShutDown(Optiona l ByVal Force As Boolean = False)On Error Resume NextSet cnn = NothingDim i As IntegerFor i = Forms.Count - 1 To 0 Step -1Unload Forms(i) ' Triggers QueryUnload and Form_UnloadIf Not Force ThenIf Forms.Count > i ThenIf Forms.Count = 0 Then Exit ForEnd IfEnd IfNext iIf Force Or (Forms.Count = 0) Then CloseEnd Sub Option ExplicitPublic blnOK As BooleanPrivate Sub Form_Load()Screen.MousePointer = vbNormaltxtUserName.Text = GetSetting(App.EXEName, "User", "Login", "admin")End SubPrivate Sub Form_Activate()On Error Resume NexttxtPassword.SetFocusEnd SubPrivate Sub cmdOK_Click()Screen.MousePointer = vbHourglassIf txtUserName.Text = "" ThenScreen.MousePointer = vbNormalMsgBox "请输入登录账号!", vbCritical, "提示"Exit SubEnd IfIf txtPassword.Text = "" ThenScreen.MousePointer = vbNormalMsgBox "请输入密码!.", vbCritical, "提示"Exit SubEnd Ifusername = txtUserName.TextDim rsL As cRecordsetSet rsL = cnn.OpenRecordset("SELECT * FROM [LOGINS] WHERE [USERNAME] = '" & _UCase$(txtUserName.Text) & "' OR [USERNAME] = '" & _LCase$(txtUserName.Text) & "'")If rsL.BOF And rsL.EOF ThenScreen.MousePointer = vbNormalMsgBox "Username not found !"txtUserName.SetFocustxtUserName.SelStart = 0txtUserName.SelLength = Len(txtUserName.Text)Set rsL = NothingExit SubElseIf rsL.Fields("PASSWORD").Value = txtPassword.Text Then' 登录成功DoEventsername = txtUserName.TextIf IsNumeric(rsL.Fields("ACCESS").Value) ThenAccessLevel = rsL.Fields("ACCESS").ValueElseAccessLevel = 0End IfblnOK = TrueSaveSetting App.EXEName, "User", "Login", txtUserName.TextSet rsL = NothingUnload MeElseScreen.MousePointer = vbNormalMsgBox "登录密码错误,请检查!", vbCritical, "提示"txtPassword.SetFocustxtPassword.SelStart = 0txtPassword.SelLength = Len(txtPassword.Text)Set rsL = NothingExit SubEnd IfEnd IfEnd SubPrivate Sub Form_KeyPress(KeyAscii As Integer)Select Case KeyAsciiCase 39KeyAscii = 96Case 13SendKeys "{TAB}"KeyAscii = 0End SelectEnd SubPrivate Sub cmdQuit_Click()OK = FalseShutDownEnd SubPrivate Sub cmdCancel_Click()OK = FalseShutDownEnd SubPrivate Sub txtUsername_GotFocus()txtUserName.SelStart = 0txtUserName.SelLength = Len(txtUserName.Text)End SubOption ExplicitPrivate Sub MDIForm_Load()Me.Mo ve 0, 0, 13000, 10000Screen.MousePointer = vbNormalEnd SubPrivate Sub btnUsers_Click()frmUserManager.ShowfrmUserManager.ZOrder 0End SubPrivate Sub btnSQLite_Click()frmSQLite.ShowEnd SubPrivate Sub btnClose_Click()Unload MeEnd SubPrivate Sub Form_Unload(Cancel As Integer)ShutDownEnd SubPrivate Sub Timer1_Timer()sbar.Panels(2).Text = " 用户名: " & username & " "sbar.Panels(3).Text = " 权限: " & AccessLevel & " "sbar.Panels(4).Text = " " & Format$(Date, "Long Date") & " "sbar.Panels(5).Text = " " & Format$(Now, "hh:mm:ss AMPM") & " " End SubOption ExplicitDim strSQL As StringDim currID As LongDim blnAddMode As BooleanSub Form_Load()Dim i As IntegerMe.Mo ve 500, 500, 8655, 7245cboAL.ClearFor i = 0 To 9cboAL.AddItem iNext iIf AccessLevel = 9 ThenPicture1.Visible = Truelv.Height = 3720ElsePicture1.Visible = Falselv.Height = 5235End IfcmdRefresh_ClickScreen.MousePointer = vbNormalEnd Sub'刷新Private Sub cmdRefresh_Click()blnAddMode = FalseDim thisID As LongIf lv.ListItems.Count > 0 ThenthisID = CLng(lv.SelectedItem.Index)ElsethisID = 1End Iflv.ListItems.ClearLoadDataIf lv.ListItems.Count = 0 Then Exit SubIf thisID > 0 Thenlv.ListItems(1).Selected = TruecurrID = CLng(lv.SelectedItem)lv_ItemClick lv.SelectedItemEnd IfEnd Sub'加载数据Private Sub LoadData()Dim i As IntegerblnAddMode = Falselv.ListItems.Clearlv.ColumnHeaders(2).Width = 2900Dim rsLogin As cRecordsetIf AccessLevel = 9 ThenstrSQL = "SELECT * FROM [LOGINS] "ElsestrSQL = "SELECT * FROM [LOGINS] WHERE " & _"[USERNAME] <> 'admin' AND [ACCESS] <= " & AccessLevel End IfstrSQL = strSQL & " O RDER BY [USERNAME]"Set rsLogin = cnn.OpenRecordset(strSQL)If Not rsLogin.BOF And Not rsLogin.EOF Theni = 1Do While Not rsLogin.EOFlv.ListItems.Add i, , Format$(rsLogin!uID, "000")If Not IsNull(rsLogin!FullName) Thenlv.ListItems(i).SubItems(1) = rsLogin!FullNameElselv.ListItems(i).SubItems(1) = "-"End Iflv.ListItems(i).SubItems(2) = rsLogin!usernamei = i + 1rsLogin.MoveNextLoopEnd IfSet rsLogin = NothingEnd SubPrivate Sub cboFilter_Click()cmdRefresh_ClickEnd Sub'显示数据Private Sub DisplayData()cmdAdd.Visible = TruecmdDelete.Visible = TrueblnAddMode = FalselblUID.Caption = 0txtFullName.Text = ""txtUserName.Text = ""txtPassword.Text = ""Dim rsLogin As cRecordsetstrSQL = "SELECT * FROM [LOGINS] WHERE [UID] = " & currIDSet rsLogin = cnn.OpenRecordset(strSQL)If Not rsLogin.BOF And Not rsLogin.EOF ThenIf Not IsNull(rsLogin.Fields("UID").Value) ThenlblUID.Caption = rsLogin.Fields("UID").ValueEnd IfIf Not IsNull(rsLogin.Fields("FULLNAME").Value) ThentxtFullName.Text = rsLogin.Fields("FULLNAME").ValueEnd IfIf Not IsNull(rsLogin.Fields("USERNAME").Value) ThentxtUserName.Text = rsLogin.Fields("USERNAME").ValueEnd IfIf Not IsNull(rsLogin.Fields("PASSWORD").Value) ThentxtPassword.Text = rsLogin.Fields("PASSWORD").ValueEnd IfcboAL.ListIndex = rsLogin.Fields("ACCESS").ValueEnd IfSet rsLogin = NothingIf txtUserName.Text = "admin" ThentxtFullName.Enabled = FalsetxtUserName.Enabled = FalsecboAL.Enabled = FalseElsetxtFullName.Enabled = TruetxtUserName.Enabled = TruecboAL.Enabled = TrueEnd IfScreen.MousePointer = vbNormalEnd Sub'更新记录Private Sub cmdUpdate_Click()If Trim$(txtUserName.Text) = "" ThenMsgBox " 用户名不能为空! ", _vbCritical, "添加失败"txtUserName.SetFocusExit SubEnd IfIf Trim$(txtPassword.Text) = "" Or txtPassword.Text = "" ThenMsgBox "密码不能为空! ", _vbCritical, "添加失败"txtPassword.SetFocusExit SubEnd IfDim Rs As cRecordsetIf blnAddMode ThenSet Rs = cnn.OpenRecordset("SELECT * FROM [LOGINS] WHERE [USERNAME] = '" & _txtUserName.Text & "' AND [USERNAME] <> 'admin'")If Not Rs.BOF And Not Rs.EOF ThenMsgBox " 该用户名已经存在! " & _"请重新输入一个不同的用户名", _vbCritical, "添加失败"txtUserName.SetFocustxtUserName.SelStart = 0txtUserName.SelLength = Len(txtUserName.Text)Set Rs = NothingExit SubEnd IfSet Rs = NothingDim newID As LongnewID = GetNewID("LOGINS", "UID")cnn.Execute "INSERT INTO [LOGINS] VALUES (" & _newID & ", '" & _txtFullName.Text & "', '" & _txtUserName.Text & "', '" & _txtPassword.Text & "', " & _CInt(cboAL.Text) & ")"cmdRefresh_ClickblnAddMode = FalseExit SubElsecnn.Execute "UPDATE [LOGINS] SET " & _"[FULLNAME] = '" & txtFullName.Text & "', " & _"USERNAME = '" & txtUserName.Text & "', " & _"[PASSWORD] = '" & txtPassword.Text & "', " & _"[ACCESS] = " & CInt(cboAL.Text) & _" WHERE [UID] = " & CLng(lblUID.Caption)If txtUserName.Text = username ThenAccessLevel = CInt(cboAL.Text)End IfEnd IfSet Rs = NothingcmdRefresh_ClickEnd Sub'添加Private Sub cmdAdd_Click()blnAddMode = Truelv.ListItems(lv.ListItems.Count).Selected = TruecmdAdd.Visible = FalsecmdDelete.Visible = FalseblnAddMode = TruetxtUserName.Text = ""txtPassword.Text = ""txtFullName.Text = ""txtFullName.Enabled = TruetxtUserName.Enabled = TruetxtPassword.Enabled = TruecboAL.Enabled = TruecboAL.ListIndex = 1txtFullName.SetFocusEnd Sub'删除记录操作Private Sub cmdDelete_Click()If txtUserName.Text = "admin" ThenMsgBox "你不能删除管理员'admin'账号!", _vbExclamation, "提示"Exit SubEnd IfDim resp As Longresp = MsgBox("你确认要删除当前账号:" & _txtUserName.Text & " ? ", _vbQuestion + vbYesNo, "提示")If resp = vbYes Thencnn.Execute "DELETE FROM LOGINS WHERE USERNAME = '" & _txtUserName.Text & "'"cmdRefresh_ClickEnd IfEnd SubPrivate Sub Form_KeyPress(KeyAscii As Integer)Select Case KeyAsciiCase 39KeyAscii = 96Case 13SendKeys "{TAB}"KeyAscii = 0End SelectEnd SubPrivate Sub cmdClose_Click()Unload MeEnd SubPrivate Sub lv_ItemClick(ByVal Item As MSComctlLib.ListItem) If lv.ListItems.Count = 0 Then Exit SubcurrID = CLng(lv.SelectedItem)DisplayDataShowPicEnd SubPrivate Sub txtFullName_GotFocus()txtFullName.SelStart = 0txtFullName.SelLength = Len(txtFullName.Text)End SubPrivate Sub txtUsername_GotFocus()txtUserName.SelStart = 0txtUserName.SelLength = Len(txtUserName.Text)End SubPrivate Sub txtPassword_GotFocus()txtPassword.SelStart = 0txtPassword.SelLength = Len(txtPassword.Text)End SubPrivate Sub cmdShowPassword_Click()If Trim$(cmdShowPassword.Caption) = "?" ThentxtPassword.Font = "Tahoma"txtPassword.PasswordChar = ""cmdShowPassword.Caption = "x"ElsetxtPassword.Font = "Fixedsys"txtPassword.PasswordChar = "?"cmdShowPassword.Caption = "?"End IfOn Error Resume Nextlv.SetFocusEnd Sub'显示图片Private Sub ShowPic()Image1.Picture = LoadPicture()If lv.ListItems.Count = 0 ThenExit SubEnd IfDim file_name As StringDim file_length As LongDim fnum As IntegerDim Bytes() As ByteDim rsPic As cRecordsetfile_name = App.Path & "\tmp.jpg"If PathFileExists(file_name) <> 0 ThenKill file_nameEnd IfSet rsPic = cnn.OpenRecordset("select [PIC], [PIC_LEN] from [PICTURES] " & _ "where [ID_NO] = " & CLng(lv.SelectedItem))If Not rsPic.BOF And Not rsPic.EOF ThenIf Not IsNull(rsPic.Fields(0).Value) ThenIf rsPic.Fields(0).ActualSize = 0 ThenSet rsPic = NothingExit SubEnd IfBytes = rsPic.Fields(0).Valuefnum = FreeFileOpen file_name For Binary As #fnumPut #fnum, 1, BytesClose fnumDim dib As Longdib = FreeImage_Load(FIF_JPEG, file_name, 0)Set Image1.Picture = LoadPictureEx(file_name)Image1.RefreshEnd IfEnd IfSet rsPic = NothingEnd Sub'更改图片Private Sub cmdChangePic_Click()If lv.ListItems.Count = 0 ThenExit SubEnd If'On Error GoTo errhandDim Rs As cRecordsetdlg.DialogTitle = "请选择照片"dlg.Flags = _cdlOFNFileMustExist Or _cdlOFNHideReadOnly Or _cdlOFNExplorerdlg.CancelError = Truedlg.InitDir = App.Path & "\pictures"dlg.Filter = "照片文件| *.jpg|GIF | *.gif|Bitmap | *.bmp"dlg.CancelError = Falsedlg.ShowOpenIf Err.Number = cdlCancel ThenExit SubElseIf Err.Number <> 0 ThenMsgBox "错误" & Format$(Err.Number) & _" 请选择一个照片文件." & vbCrLf & Err.Description Exit SubEnd IfIf dlg.Filename = "" ThenExit SubEnd IfDim f_name As Stringf_name = dlg.FilenameSet Rs = cnn.OpenRecordset("select * from [PICTURES] where " & _ "[ID_NO] = " & CLng(lv.SelectedItem))If Rs.BOF Or Rs.EOF Thencnn.Execute "insert into [PICTURES] values(" & _CLng(lv.SelectedItem) & ", 0, NULL)"End IfSet Rs = NothingSet Rs = cnn.OpenRecordset("select * from [PICTURES] where " & _"[ID_NO] = " & CLng(lv.SelectedItem))setBLOB Rs, "PIC", f_nameSet Rs = NothingShowPicExit Suberrhand:MsgBox Err.DescriptionEnd Sub'设置BLOBPrivate Sub setBLOB(Rs As cRecordset, Field As String, Source As String) '用法: setBLOB myRecordSet, "FileField", "c:\myfile.gif" ' 把图片文件插入到数据库Dim byBlobData() As ByteDim intFileHandle As IntegerDim lngFileLength As LongintFileHandle = FreeFileOpen Source For Binary As intFileHandlelngFileLength = LOF(intFileHandle) - 1byBlobData = InputB(lngFileLength, intFileHandle)Close intFileHandleDim Cmd As cCommandSet Cmd = cnn.CreateCommand("update [PICTURES] set " & _"[PIC_LEN] = " & lngFileLength & ", " & _"[PIC] = (?) where " & _"[ID_NO] = " & CLng(lv.SelectedItem))On Error Resume Nextcnn.BeginTra nsCmd.setBLOB 1, byBlobData 'second Param to BlobBytesCmd.Execute '执行插入指令If Err.Number = 0 Then '成功mitTransElsecnn.RollbackTransEnd IfEnd Sub'删除图片Private Sub cmdDeletePic_Click()If lv.ListItems.Count = 0 Then Exit Subcnn.Execute "delete from [PICTURES] where [ID_NO] = " & CLng(lv.SelectedItem)ShowPicEnd SubOption ExplicitDim Rs As cRecordsetPrivate Sub Form_Load()Dim Table As cTableFor Each Table In cnn.DataBases(1).TablesIf Left$(, 7) <> "sqlite_" Then lstTables.AddItem Next TableIf lstTables.ListCount > 0 ThenlstTables.ListIndex = 0lstTables_ClickEnd IfEnd Sub'选择表Private Sub lstTables_Click()If lstTables.ListIndex = -1 Then Exit SubScreen.MousePointer = 13QueryAndVisualize lstTables.TextScreen.MousePointer = 0End Sub'显示表内容Private Sub QueryAndVisualize(TableOrViewName As String)Set Rs = cnn.OpenRecordset("Select * from [" & TableO rViewName & "]")Set DataGrid1.DataSource = Rs.DataSourceEnd SubPrivate Sub Form_Resize()pDGBox.Move -1, lTiming.Top + lTiming.Height, ScaleWidth + 2, ScaleHeight - lTiming.Top - lTiming.Height + 2lTiming.Move -3, lTiming.Top, ScaleWidth + 6End SubPrivate Sub pDGBox_Resize()DataGrid1.Move 0, 0, pDGBox.ScaleWidth, pDGBox.ScaleHeightEnd SubPrivate Sub Form_Unload(Cancel As Integer)Set DataGrid1.DataSource = NothingSet Rs = NothingEnd Sub。

一个完整的数据库示例--说明

一个完整的数据库示例--说明

一、表的结构及完整性约束新建一个数据库jxsk,包括S、C、SC、T、TC五个表,结构如下:C表:S表:SC表:T表:TC表:二、安全性控制及视图机制1、三类角色:depart、teacher、studentdepart的权限:teacher的权限:student的权限:2、有2个院系用户:d_jsj,d_xx,同属于depart角色。

有1个教师用户:t ,属于teacher 角色。

有一个学生用户:s,属于student角色。

3、创建计算机系教师视图t_view_jsj、计算机系学生视图s_view_jsj,并授予d_jsj 用户在这两个视图上的select、delete、update、insert权限。

计算机系教师视图t_view_jsj:create view t_view_jsjasselect tno,tn,sex,age,prof,sal,comm,deptfrom twhere dept='计算机'with check option授予d_jsj用户在计算机系教师视图t_view_jsj 上的select、delete、update、insert 权限:grant select,update,delete,insert on t_view_jsj to d_jsj计算机系学生视图t_view_jsj:create view s_view_jsjasselect sno,sn,sex,age,dept,resume,nativefrom swhere dept='计算机'with check option授予d_jsj用户在计算机系学生视图s_view_jsj 上的select、delete、update、insert 权限:grant select,update,delete,insert on s_view_jsj to d_jsj ……4、创建一个视图,显示学号,姓名,院系,课程名,成绩。

Access数据库实例开发

Access数据库实例开发

重点、难点是利用向导创建查询、使用设计图创 建查询、多表查询的创建、利用向导创建报表。
1、系统分析
“人力资源管理系统”是企业最基本的 人事管理系统。用户可以通过该系统,
管理企业内部职工的档案;
进行人事考勤,准备无误地记录职工的出勤 情况; 全自动生成企业职工的工资表,使企业的工 资与考勤紧密结合,从而减少企业在人员管 理的花费,提高企业效益。
2)程序的发布 在Access数据库中,程序和数据保存在同 一个文件(.mdb)中,只要在安装有Access的 计算机中打开此文件,即可运行该系统。
1)使用“设计视图”创建窗体 创建“部门情况”窗体
在窗体视图中,鼠标指向窗体的灰色区域,单 击鼠标右键,在弹出的快捷菜单中选择“属性” 命令。
在窗体中添加要显示的字段有一种较简单的方 法,用鼠标拖动“字段列表”中的字段到窗体 上,即可完成
2 )“窗体向导”创建窗体 利用窗体向导创建本系统的“职工基本情况” 窗体
报表预览结果
2)利用设计视图创建“职工个窗体,我们通 过这个主窗体来操作其他的对象,比如打开 “职工基本信息“表,打开“部门信息报表” 等。 利用前面学过的窗体创建方法,用设计 视图添加一个新窗体,在窗体的控件属性设 置如表所示。
1)创建数据库 步骤如下: (1) 启动Access 2003,它会弹出入图所示的 对话框,现在我们要创建新的数据库;
选择“空 数据库”
(2) 选择数据库文件的保存位置,然后在对话框的 “文件名”组合框中输入“人力资源管理系统”, 最后单击“创建”按钮,“人力资源管理系统” 的数据库就创建完成了;
本系统的主要功能包括:
职工档案资料管理; 考勤管理; 工资管理;
1) 职工档案管理模块的主要作用是保存职工的个 人档案、个人简历,并详细记录职工的工作调 动情况。所有的职工资料,都可以用多种方式 进行查询。 2) 考勤管理模块的作用是对企业内部的职工进行 出勤考核,为了减轻考勤人员的工作量,只记 录职工迟到、旷工的记录。 3) 工资管理模块可以对职工的工资进行设定,结 合考勤管理部分的数据,自动生成工资表,并 提供工资条的打印功能。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数据库开发示例——图书管理系统1 系统需求分析当今社会,仓储物资管理系统以规范的物资管理流程和采购价格系数分析为核心,通过对物资出入库信息的过程控制,实现物资管理的规范化和程序化,从而降低物资采购价格,提高工作效率。

目前,很多企业都在进行企业信息化建设,而这种信息化建设不仅仅是计算机技术的革新,而是一种管理创新、思想创新,也就是说在企业信息化建设的同时,对企业的的各项管理业务及活动的处理过程进行改造,即业务流程再造(BPR--Bussiness Process Reengineering),为何要把业务流程再造提到这样一个高度,因为,业务流程的合理化是信息系统发挥作用的前提;计划和市场是业务流程设计的出发点;价值链是衡量业务流程的尺度;增加效益是业务流程合理化的目的。

物资管理是企业管理非常重要的一环。

由于物资材料储备量大、管理种类繁多,供应渠道复杂,使得物资供应和管理变得十分复杂和困难。

只有建立完善的计算机物资管理系统才能有效管理物资的供、管、用三方面的工作,达到保障供应,降低库存,加速资金周转,加强物资使用监管,提高物资管理劳动生产率,促进企业可持续的发展。

物资管理水平的高低直接影响到整个企业的生产管理水平。

采用计算机仓储物资管理系统,具有以下优点:(1)及时掌握企业经营信息,提高管理水平,提升企业的分析、决策能力。

(2)可以减轻工作人员工作量,将其从大量的繁琐工作中解放出来,全力提高工作效益和工作质量,提高工作效率。

(3)有效管理库存,合理控制资金占用,加快资金周转,提高经济效益。

(4)通过对材料消耗的控制,降低生产成本。

(5)信息准确及时,克服了人为造成的遗漏和损失。

1.1系统功能需求如何描述一个业务过程是仓储物资管理系统的基础,首先,抽象出企业有哪些业务过程,哪些业务过程适合于仓储物资管理,然后,对业务过程进行分析描述。

对业务流程的描述主要包括:每一个业务过程的流程如何?是否规范?哪些环节可完全用计算机实现?哪些不能?哪些只能辅助实现?若用计算机实现,需输入哪些数据?需进行哪些处理?需输出什么?相关数据的入口在哪里?数据的所有者是谁?其他人员和这些数据的关系是什么?通过这几个方面的描述来唯一确定一个业务过程。

由此看来,我们可把一些业务过程看作一些实体,该实体包括如下几个属性:流程描述、业务流程图、数据流图、输入数据、输出数据、功能、事件等。

1.流程描述:用文字详细描述流程中的每一个业务环节,使具体的业务员和计算机开发人员看了之后,不发生任何歧义,每个业务环节的复杂度要适中。

它是后面功能和事件描述的基础,是详细设计功能模块划分的依据。

每个业务过程可能有很多业务环节,每个业务环节可能由不同岗位上的人来做,我们把管理中涉及到的人员划分角色,每一种角色分担一项具体的工作,任务明确;每一种角色对数据的属性也是各不相同的;对数据的操作权限也是各不相同的。

2.业务流程图:根据业务流程描述,画出对应的业务流程图,是业务流程描述的图形表示,使业务流程更加直观明了。

3.数据流图:从数据流动的角度描述该业务中的数据输入,数据的处理以及数据输出。

4.输入数据:描述本系统中的输入数据,输入数据主要分为三类,(1)外界数据;(2)内部数据;(3)外系统的数据。

5.输出数据:描述本系统中的输出数据,输出数据主要分为三类,(1)外界数据;(2)内部数据;(3)外系统内存贮的数据。

它是数据库设计,报表设计和查询设计的依据。

6.功能:主要是管理系统出入库信息的。

7.事件:用户在使用该系统时触发功能所引发的时间。

物流控制模型图说明如下:1)入库:依据是入库验收单备注;控制是资金;目的是允许出库。

2)出库:依据是库存;控制是库存、资金;目的是允许出库。

通过对物资供应部门业务的了解和以上物流控制模型的分析,物资供应管理的主要业务过程有:仓储管理(1入库、2出库、3库存、4台帐管理)在物资供应管理工作中涉及的角色主要有:系统管理员,操作管理员,用户。

本系统主要面向的用户有系统管理员、操作管理员管理员、用户。

下面分角色对该系统的不同操作范围做说明。

登录:(1)身份验证登录包括:管理员登录和用户登录。

管理员分为系统管理员和普通管理员,分别通过不同的用户名和密码进入仓储物资管理系统管理界面(管理员有不同的权限,通过权限判别进入)。

系统管理员、操作管理员共有操作权限,系统管理员还有系统维护权限。

(2)物资入库录入:用来记录入库的物资。

(3)物资出库录入:用来记录出库的物资。

(3)物资出库录入:用来记录出库的物资。

(4)物资台帐管理:用来管理出入库所进行的台帐记录。

(5)物资管理流水帐:用来管理出入库所进行的流水帐记录。

(6)物资统计报表:用来统计所有能写入输出的物资。

(7)物资管理流水帐输出:查看,打印流水帐。

(8)物资管理台帐输出:查看,打印台帐。

(9)物资库存信息汇总:库存信息。

(10)物资库存信息查询:查询库存的信息。

(11)物资库存信息输出:打印库存的信息。

系统管理员操作权限:(12)物资维护:修改物资。

(13)打印机设置:设置打印机。

(14)帐号管理:增加删除帐号。

读者操作权限:(15)物资入库信息查询:查询入库的信息。

(16)物资出库信息查询:查询出库的信息。

(17)物资入库信息输出:打印入库的信息。

(18)物资出库信息输出:打印出库的信息。

(19)注册用户:申请新用户。

1.2数据需求仓储物资管理系统中的数据流主要贯穿于管理工作中的业务操作流程之中,涉及到出库,入库,帐单,流水帐,库存等操作。

仓储物资管理系统中的数据流程主要描述如下:系统管理员:将部分参数信息进行录入处理,然后保存信息到数据库中,同时可以对这些库信息进行查询、修改和删除处理。

系统管理员对出入库信息、库存信息等还有统计、查询功能。

且可以修改口令,维护管理员信息。

普通管理员:通过操作各项事务——出入库录入,库存录入及其查询。

管理员可以重新登录,可以修改口令。

读者:只能查询信息1.3 数据字典数据字典是关于数据的信息的集合,也就是对数据流图中包含的所有元素的定义的集合。

数据流图和数据字典共同构成系统的逻辑模型。

由仓储物资管理系统的数据流图得到数据字典,举例如下:(1)物资入库描述物资进入仓库,并将其加入数据库。

(2)物资出库描述物资离开仓库,并将其加入数据库。

(3)物资库存描述物资进入仓库和出仓库的总和。

2 系统总体设计2.1系统总体结构设计图书管理系统主要是由物资信息录入,物资信息查询,库存管理,台帐管理报表输出管理,系统维护,系统设置,帮助等主要模块构成。

本系统的结构功能图:3.2系统数据模型设计3.2.1 E-R图E-R图提供了表示实体、属性和联系的方法。

* 实体:用矩形表示,矩形框内写明实体名* 属性:用椭圆型表示,并用无向边与其相应实体连接起来* 联系:用菱形表示,菱形框内写明联系名,并用无向边与其有关实体连接起来,同时联系的类型。

本系统采用E-R图(实体-关系图)的方法进行数据库概念结构设计。

系统E-R图如下所示:系统各实体E-R图(部分):(1)物资入库实体E-R图:(2)物资出库实体E-R图:(3)物资实体E-R图:(4)物资流水帐E-R图:3.2.2 数据表本系统的数据库采用了大量的数据表:(1)物资流水帐信息表(物资入库)该表共有流水帐号,日期,领料人,领料部门,一共4个字段,其中流水帐号为主键。

(2)物资入库信息表(t_reader)该表共有读者借阅证号(rcode)、读者姓名(rname)、读者证件号(读者学号/工作人员工号)(rstucode)、读者性别(rsex)、读者部门(rbum)、读者类型(rtype)、已借数目(rlend)、读者借阅状态(rgrade)、违章状态(rbilldue)、读者初始密码(rpassword)、读者照片(rphoto)等多个个字段,其中读者借阅证号(rcode)为主键。

该表记录了所有读者的基本信息。

(3)图书编号信息表(t_bookcode)该表共有图书财产号(初始状态下与图书条码号一致)(bproperty)、图书条码号(bbarcode)、图书索书号(bextort)、在馆状态(bisnot)、备注(bremarks)等五个字段,其中图书财产号(bproperty)是该表的主键。

该表记录了馆中每一本图书的基本信息,与t_book表以图书索书号(bextort)相关联,构成图书的所有基本信息。

(4)图书预约信息表(t_bbookget)该表共有预约号(bbookid)、读者借阅证号(rcode)、图书索书号(bextort)、预约日期(bookdate)、到馆日期(arrivetime)、截止日期(endtime)、保留天数(keepdays)、到馆状态(barrive)、处理状态(bstate)等多个字段。

该表记录了预约图书的相关信息。

(5)图书借阅信息表(t_borrow)该表共有图书条码号(bbarcode)、读者条码号(rcode)、借出日期(lenddate)、应归还日期(expdate)、实际归还日期(returndate)、超期天数(surpassdays)、是否已续借(bagain)、归还状态(retsta)等多个字段,其中自动编号为主键。

该表记录了读者借阅、归还等基本信息。

(6)罚款信息表(t_bfine)该表有读者借阅证号(rcode)、图书条码号(bbarcode)、应归还日期(expdate)、实际归还日期(returndate)、处理日期(donedate)、应罚款金额(mustfine)、实际罚款金额(reality)、罚款原因(freason)、处理状态(handinstate)、罚款处理人(hander1)、收款人(hander2)等。

(7)罚款缴纳信息表(t_bfine d)该表有读者借阅证号(rcode)、图书条码号(bbarcode)、应归还日期(expdate)、实际归还日期(returndate)、处理日期(donedate)、应罚款金额(mustfine)、实际罚款金额(reality)、罚款原因(freason)、处理状态(handinstate)、罚款处理人(hander1)、收款人(hander2)等。

该表用于提取读者当前缴纳罚款的情况,便于显示、打印等,减少了写烦琐SQL语句所带来的困难。

(8)归还信息表(t_bborrow)该表共有图书条码号(bbarcode)、读者条码号(rcode)、借出日期(lenddate)、应归还日期(expdate)、实际归还日期(returndate)、超期天数(surpassdays)、是否已续借(bagain)、归还状态(retsta)等多个字段。

该表记录了读者归还的基本信息。

相关文档
最新文档