资产数据库设计.docx
- 文档编号:6201729
- 上传时间:2023-01-04
- 格式:DOCX
- 页数:16
- 大小:102.21KB
资产数据库设计.docx
《资产数据库设计.docx》由会员分享,可在线阅读,更多相关《资产数据库设计.docx(16页珍藏版)》请在冰豆网上搜索。
资产数据库设计
课程设计任务书
学生姓名:
专业班级:
指导教师:
唐祖锴工作单位:
计算机学院
题目:
资产数据库设计
初始条件:
一个公司希望为管理它的每批资产(如PC机、打印机、汽车、桌子、椅子等)建立一个数据库。
资产被分为几类,如计算机和设备。
一个资产被分配给一个员工。
财务人员要检查每批资产的现有市场价值,并记录下日期和现有价值。
公司也许会决定卖掉现有资产。
同样,每批资产都要进行维护。
要求完成的主要任务:
1.根据上述的初始条件,进行调查分析并设计适当的属性。
设计一个资产数据库,DBMS可选MsSQLServer、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表
CREATETABLEstaff
(
idINTNOTNULLAUTO_INCREMENT,
nameVARCHAR(30)NOTNULL
)
AUTO_INCREMENT=100
2)建立fund表
CREATETABLEfund
(
idINTNOTNULLAUTO_INCREMENT,
nameVARCHAR(30)NOTNULL,
belongINTNOTNULL,
typeINTNOTNULL,
stateTINYINTNOTNULLDEFAULT1,
buyvaluedecimal(10,2)NOTNULL,
buydateDATENOTNULL,
valuedecimal(10,2)NOTNULL,
checkdateDATENOTNULL,
FOREIGNKEY(belong)REFERENCESstaff(id)ONDELETECASCADEONUPDATECASCADE
)
AUTO_INCREMENT=100
3)建立repair表
CREATETABLErepair
(
idINTNOTNULLAUTO_INCREMENT,
fundidINTNOTNULL,
dateDATENOTNULL,
paydecimal(7,2)NOTNULL,
FOREIGNKEY(fundid)REFERENCESfund(id)ONDELETECASCADEONUPDATECASCADE
)
AUTO_INCREMENT=100
4)建立finance表
CREATETABLEfinance
(
idINTNOTNULLAUTO_INCREMENT,
fundidINTNOTNULL,
dateDATENOTNULL,
valuedecimal(10,2)NOTNULL,
FOREIGNKEY(fundid)REFERENCESfund(id)ONDELETECASCADEONUPDATECASCADE
)
AUTO_INCREMENT=100
五.物理实现:
1.开发平台:
操作系统:
windowsXP
工具:
Mysql,Apache,Notepad++,dreamweaverCS5
语言:
PHP
2.相关技术:
1)PHP
PHP,是英文超文本预处理语言HypertextPreprocessor的缩写。
PHP是一种HTML内嵌式的语言,是一种在服务器端执行的嵌入HTML文档的脚本语言,语言的风格有类似于C语言,被广泛地运用。
PHP独特的语法混合了C、Java、Perl以及PHP自创的语法。
它可以比CGI或者Perl更快速地执行动态网页。
用PHP做出的动态页面与其他的编程语言相比,PHP是将程序嵌入到HTML文档中去执行,执行效率比完全生成HTML标记的CGI要高许多;PHP还可以执行编译后代码,编译可以达到加密和优化代码运行,使代码运行更快。
PHP具有非常强大的功能,所有的CGI的功能PHP都能实现,而且支持几乎所有流行的数据库以及操作系统。
最重要的是PHP可以用C、C++进行程序的扩展!
2)Apache
ApacheHTTPServer(简称Apache)是Apache软件基金会的一个开放源码的网页服务器,可以在大多数计算机操作系统中运行,由于其多平台和安全性被广泛使用,是最流行的Web服务器端软件之一。
它快速、可靠并且可通过简单的API扩展,将Perl/Python等解释器编译到服务器中。
Apachehttpserver是世界使用排名第一的Web服务器软件。
它可以运行在几乎所有广泛使用的计算机平台上。
Apache源于NCSAhttpd服务器,经过多次修改,成为世界上最流行的Web服务器软件之一。
Apache取自“apatchyserver”的读音,意思是充满补丁的服务器,因为它是自由软件,所以不断有人来为它开发新的功能、新的特性、修改原来的缺陷。
Apache的特点是简单、速度快、性能稳定,并可做代理服务器来使用。
3)Javascript
JavaScript是一种基于对象和事件驱动并具有相对安全性的客户端脚本语言。
同时也是一种广泛用于客户端Web开发的脚本语言,常用来给HTML网页添加动态功能,比如响应用户的各种操作。
它最初由网景公司(Netscape)的BrendanEich设计,是一种动态、弱类型、基于原型的语言,内置支持类。
实现流程:
安装mysql,apache,php,并正确配置。
使用dreamweaver编写html代码。
创建数据库。
编写php代码。
测试
3.系统截图:
资产列表
添加资产
员工列表
添加维修记录
维修记录
检查
检查记录
资产列表按人
4.代码:
1)添加资产:
$new_name=$_POST['name'];
$new_belong=$_POST['belong'];
$new_type=$_POST['type'];
$new_date=$_POST['date'];
if(array_key_exists('value',$_POST)&&isset($_POST['value'])){
$new_value=$_POST['value'];
}else{
$new_value=0;
}
$con=@mysql_connect('localhost','root','836522634');
mysql_query("setnames'utf8'");
$db_select=mysql_select_db('company',$con);
$result=mysql_query("INSERTINTOfund(name,belong,type,buyvalue,buydate)
VALUES('$new_name','$new_belong','$new_type','$new_value','$new_date')");
2)变卖资产:
$id=$_GET['id'];
$con=@mysql_connect('localhost','root','836522634');
mysql_query("setnames'utf8'");
$db_select=mysql_select_db('company',$con);
$result=mysql_query("UPDATEfund
SETstate='0'
WHEREid='$id'
");
header("location:
show.php");
3)显示资产:
php
$product_class=array('电子产品','交通运输设备','文体体育设备','家具用品','电气设备','仪器仪表','其它');
$con=@mysql_connect('localhost','root','836522634');
mysql_query("setnames'utf8'");
$db_select=mysql_select_db('company',$con);
$result=mysql_query("SELECTfund.idASid,fund.nameASname,fund.buyvalueASvalue,fund.buydateASdate,fund.typeAStype,staff.nameASbelong,fund.valueASnowvalue,fund.belongASbelongid
FROMfund,staff
WHEREfund.belong=staff.idANDfund.state=1
");
while($row=mysql_fetch_array($result)){
$id=$row['id'];
$name=$row['name'];
$belong=$row['belong'];
$belongid=$row['belongid'];
$date=$row['date'];
$value=$row['value'];
$type=$product_class[$row['type']-1];
$now_value=$row['nowvalue'];
if(!
isset($now_value)){
$now_value=$value;
}
echo"
id=$belongid\">$belong
id=$id\">变卖 id=$id\">检查 id=$id\">维修 id=$id\">修改
}
>
4)检查:
$fund=$_POST['id'];
$value=$_POST['value'];
$date=$_POST['date'];
$con=@mysql_connect('localhost','root','836522634');
mysql_query("setnames'utf8'");
$db_select=mysql_select_db('company',$con);
$result=mysql_query("INSERTINTOfinance(fundid,value,date)
VALUE('$fund','$value','$date')
");
$add=mysql_query("UPDATEfund
SETVALUE=$value
WHEREid='$fund'
");
header("location:
fund.php");
5)维修:
$fund=$_POST['id'];
$pay=$_POST['pay'];
$date=$_POST['date'];
$con=@mysql_connect('localhost','root','836522634');
mysql_query("setnames'utf8'");
$db_select=mysql_select_db('company',$con);
$result=mysql_query("INSERTINTOrepair(fundid,pay,date)
VALUE('$fund','$pay','$date')
");
header("location:
fund.php");
6)删除员工:
$id=$_GET['id'];
$con=@mysql_connect('localhost','root','836522634');
mysql_query("setnames'utf8'");
$db_select=mysql_select_db('company',$con);
$result=mysql_query("DELETEFROMstaff
WHEREid='$id'
");
header("location:
staff.php");
7)修改员工:
$name=$_POST['name'];
$id=$_POST['id'];
$con=mysql_connect('localhost','root','836522634');
mysql_query("setnames'utf8'");
$db_select=mysql_select_db('company',$con);
$result=mysql_query("UPDATEstaff
SETname='$name'
WHEREid='$id'
");
header("location:
staff.php");
8)修改资产:
$id=$_POST['id'];
$name=$_POST['name'];
$belong=$_POST['belong'];
$type=$_POST['type'];
$date=$_POST['date'];
if(array_key_exists('value',$_POST)&&isset($_POST['value'])){
$value=$_POST['value'];
}else{
$value=0;
}
$con=@mysql_connect('localhost','root','836522634');
mysql_query("setnames'utf8'");
$db_select=mysql_select_db('company',$con);
$result=mysql_query("UPDATEfund
SETname='$name',belong='$belong',type='$type',buyvalue='$value',buydate='$date'
WHEREid='$id'
");
9)维修记录:
php
$product_class=array('电子产品','交通运输设备','文体体育设备','家具用品','电气设备','仪器仪表','其它');
$con=@mysql_connect('localhost','root','836522634');
mysql_query("setnames'utf8'");
$db_select=mysql_select_db('company',$con);
$result=mysql_query("SELECTrepair.idASid,repair.fundidASfundid,fund.nameASname,repair.dateASdate,repair.payASpay
FROMfund,repair
WHERErepair.fundid=fund.id
");
while($row=mysql_fetch_array($result)){
$id=$row['id'];
$fundid=$row['fundid'];
$name=$row['name'];
$date=$row['date'];
$pay=$row['pay'];
echo"
}
>
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 资产 数据库 设计