课程设计任务书
学生姓名                          专业班级:   
指导教师:      唐祖锴                工作单位: 计算机学院     
题目:资产数据库设计
初始条件:
一个公司希望为管理它的每批资产(如PC机、打印机、汽车、桌子、椅子等)建立一个数据库。资产被分为几类,如计算机和设备。一个资产被分配给一个员工。财务人员要检查每批资产的现有市场价值,并记录下日期和现有价值。公司也许会决定卖掉现有资产。同样,每批资产都要进行维护。
要求完成的主要任务:
1.根据上述的初始条件,进行调查分析并设计适当的属性。设计一个资产数据库,DBMS可选Ms SQL Server、Access、VFP等。
2.完成课程设计说明书,其格式遵守学校今年的新规定。主要内容包括:需求分析,概念设计,逻辑设计,物理实现等。
3.基于该数据库,最好实现一个或多个应用程序(自己确定功能),程序设计语言(工具)任选。这一项是选作,不作硬性要求。
时间安排:
本学期第18周:
1.消化资料、系统调查    1
2.系统分析    1天
3.总体设计,实施计划    2 
4.撰写报告    1
指导教师签名:                                    年        月        日
系主任(或责任教师)签名:                    年        月        日
一.背景及意义
传统人工的方式固定资产管理,这种管理方式存在着许多缺点,如:效率低、保密性差,另外时间一长,将给固定资产的更新和维护都带来了不少的困难,而且容易丢失。因此,开发一个代替手工操作的新型的计算机管理的固定资产管理系统是刻不容缓的。随着计算机技术的飞速发展,计算机在公司企业管理中应用的普及,利用计算机实现公司员工信息的管理势在必行。对于大中型企业来说,利用计算机支持企业高效率完成固定资产信息管理,是适应现代企业制度要求、推动固定资产管理走向科学化、规范化的必要条件;计算机进行管理工作,不仅能够保证准确无误、快速输出,而且还可以利用计算机对有关固定资产的各种信息进行统计,同时计算机具有手工管理所无法比拟的优点.例如:检索迅速、查方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高固定资产管理的效率,也是企业的科学化、正规化管理,与世界接轨的重要条件。
二.需求分析
1.资产管理流程图
2.功能结构:
资产管理系统主要是对资产有关信息进行管理,它的主要功能如下:
1)进行资产信息的添加,变卖。
2)添加资产的维修记录。
3)添加资产的检测记录,并修改资产当前价值。
4)员工信息的添加修改删除。
三.概念设计:
概念结构设计就是将需求分析阶段得到的用户需求抽象为数据库的概念结构。本论文使用E-R图来描述系统的概念结构,即使用RE图表示需求分析的结果。实际设计过程中,首先分析系统中以实体为基本单位的局部ER图,然后分析两两实体之间的联系,画出两两实体之间的局部ER图,再讲两两实体之间联系的ER图作为基本单位,画出他们之间的ER图,以此类推,最后将各局部ER图拼合成全局ER图。
通过需求分析可知,资产管理系统的研究对象主要有资产,员工,维修记录,检查记录四个部分。
1.资产
2.员工
3.维修记录
4.检查记录
四.逻辑设计
1.数据库设计:
fund 资产信息表
字段
类型
其他
备注
id
int
PRIMARY,  AUTO_INCREMENT
资产ID
name
varchar(30)
资产名
belong
int
拥有者ID
type
数据库设计的意义
tinyint
资产类型
state
tinyint
状态
buyvalue
decimal(10,2)
购买时价值
buydate
date
购买时间
注:状态有1和0两种,1为一般状态,0为已卖出状态。
staff 员工信息表
字段
类型
其他
备注
id
int
PRIMARY,  AUTO_INCREMENT
员工ID
name
varchar(30)
员工姓名
repair 维修记录表
字段
类型
其他
备注
id
int
PRIMARY,  AUTO_INCREMENT
记录ID
fundid
int
资产ID
date
date
维修时间
pay
decimal(7,2)
维修费用
finance 价值检查记录表
字段
类型
其他
备注
id
int
PRIMARY,  AUTO_INCREMENT
记录ID
fundid
int
资产ID
date
date
检查时间
value
decimal(7,2)
当时价值
外键约束:
fund.belong → staff.id
repair.fundid → belong.id
finance.fundid → belong.id
2.数据库实现
1)建立staff表
CREATE TABLE staff
    (
    id INT NOT NULL AUTO_INCREMENT,
    name VARCHAR(30) NOT NULL
    )
    AUTO_INCREMENT=100
2)建立fund表
CREATE TABLE fund
    (
    id INT NOT NULL AUTO_INCREMENT,
    name VARCHAR(30) NOT NULL,
  belong INT NOT NULL ,
  type INT NOT NULL ,
  state TINYINT NOT NULL DEFAULT 1 ,
  buyvalue decimal(10,2) NOT NULL,
  buydate DATE NOT NULL,
  value decimal(10,2) NOT NULL,
  checkdate DATE NOT NULL,
  FOREIGN KEY(belong) REFERENCES staff(id) ON DELETE CASCADE ON UPDATE CASCADE
    )
    AUTO_INCREMENT=100
3)建立repair表
CREATE TABLE repair
    (
    id INT NOT NULL AUTO_INCREMENT,
    fundid INT NOT NULL,
  date DATE NOT NULL,
  pay decimal(7,2) NOT NULL,
  FOREIGN KEY(fundid) REFERENCES fund(id) ON DELETE CASCADE ON UPDATE CASCADE