《数据库课程设计》课程设计-外贸公司的订单管理系统.docx

上传人:聆听****声音 文档编号:1953206 上传时间:2023-05-02 格式:DOCX 页数:12 大小:104.81KB
下载 相关 举报
《数据库课程设计》课程设计-外贸公司的订单管理系统.docx_第1页
第1页 / 共12页
《数据库课程设计》课程设计-外贸公司的订单管理系统.docx_第2页
第2页 / 共12页
《数据库课程设计》课程设计-外贸公司的订单管理系统.docx_第3页
第3页 / 共12页
《数据库课程设计》课程设计-外贸公司的订单管理系统.docx_第4页
第4页 / 共12页
《数据库课程设计》课程设计-外贸公司的订单管理系统.docx_第5页
第5页 / 共12页
《数据库课程设计》课程设计-外贸公司的订单管理系统.docx_第6页
第6页 / 共12页
《数据库课程设计》课程设计-外贸公司的订单管理系统.docx_第7页
第7页 / 共12页
《数据库课程设计》课程设计-外贸公司的订单管理系统.docx_第8页
第8页 / 共12页
《数据库课程设计》课程设计-外贸公司的订单管理系统.docx_第9页
第9页 / 共12页
《数据库课程设计》课程设计-外贸公司的订单管理系统.docx_第10页
第10页 / 共12页
《数据库课程设计》课程设计-外贸公司的订单管理系统.docx_第11页
第11页 / 共12页
《数据库课程设计》课程设计-外贸公司的订单管理系统.docx_第12页
第12页 / 共12页
亲,该文档总共12页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

《数据库课程设计》课程设计-外贸公司的订单管理系统.docx

《《数据库课程设计》课程设计-外贸公司的订单管理系统.docx》由会员分享,可在线阅读,更多相关《《数据库课程设计》课程设计-外贸公司的订单管理系统.docx(12页珍藏版)》请在冰点文库上搜索。

《数据库课程设计》课程设计-外贸公司的订单管理系统.docx

一、需求分析

1.针对外贸企业的订单管理系统,分别对商品、订单、订单明细、客户、生产商和供应商在整个订单管理系统中的定位进行详细的分析,获得其需求信息如下:

订单的接收是按照商品分类进行的,所以需要有每个商品的信息。

登记于同一张订单明细的必须是同一种商品。

如果一个商品的订单有一个或者多个胜生产商满足,则该订单不可被退回。

需要完整地记录商品、客户、生产商、供应商的信息。

针对每一笔业务,在订单中的商品信息栏中都要仔细的纪录每一种商品的编号、日期、数量、单价和总价。

在每一张订单中都要详尽的纪录下订单的单位名称、单位号、单位地址、交货日期、货品名称、货品号、货品单价和货品总价。

把所有相同的产品纪录到同一张订单明细表中,每一张订单明细表中只能纪录同一种商品。

在每一张订单明细表中需要纪录订单号、单位名称、商品号、商品名、规格、交货日期、数量、单价和签订日期等。

根据货品名称、交货日期、货品数量、生产商的生产能力以及单位地址等实际因素,将订单明细表进行合理的合并和拆分,从而达到降低成本的目的。

对接收订单的货品的生产商以及货品的供应商信息进行详尽的纪录。

订单的接收、处理要有相应的业务员信息。

只有管理员登录之后才可以使用系统。

默认的管理员不可以删除。

可以对作废的、待生产的、正生产的、生产完成的订单进行分类查找,但不能进行修改、添加、删除等操作。

当进行订单接收和处理操作后,能相应更新数据库更新。

对所接收的订单进行数据分析,总结相应商品的订单服务。

2.经上述系统功能分析和需求总结,考虑其业务和功能的不断扩展,设计如下的数据项和数据结构:

商品信息,包括的数据项有:

商品号,名称,规格,单价,描述。

订单明细信息,包括的数据项有:

订单号,单位名称,商品号,商品名,规格,交货日期,数量,单价,签订日期。

订单信息,包括的数据项有:

订单号,单位,操作员号,地址,签订日期,单价,数量,商品号,交货日期。

业务员信息,包括的数据项有:

职工号,姓名,年龄,职称。

客户信息,包括的数据项有:

客户姓名,账号,地址,联系方式。

生产订单信息,包括的数据项有:

生产商,商品名,数量,单价,账号,联系方式。

供应商信息,包括的数据项有:

姓名,地址,电话号码,账号。

3.数据流图

订单管理系统数据流图如下:

客户信息表

基本信息

客户

P1

客户管理系统

产品信息表

P5.1

下单

基本信息

产品

P2

产品管理系统

员工信息表

基本信息

订单

订单明细

员工

P3

员工管理系统

不合格的订单

订单

信息

明细

订单

客户信用情况

P5.2

不合格的

基本信息

P4

供应商管理系统

审核

供应商

经审核后

订单明

供应商信息表

合格的客

户和订单信息

订单明

细信息

P5.3

拆合

生产订单

在整个数据流图中,P1,P2,P3,P4分别是客户信息管理系统,产品信息管理系统,员工信息管理系统,供应商管理系统,我们这里只作简单处理。

P5.1,P5.2,P5.3是订单管理系统的核心部分,P5.2审核系统是根据客户的信用情况,剔除一部分不合格的订单并触发修改订单明细,P5.3是根据供应商的供应能力等情况对订单明细进行拆分和合并处理,最终形成生产订单。

4.数据字典

(1)、数据项数据项描述=

{职工号,char(6),000000~999999,前两个数字表示所属部门,中间两个数字表示工作起始年份};

{姓名,varchar(8)};

{年龄,int

(2),18~65,职工的年龄必须大于18周岁且小于65周岁};

{商品号,char(14),由阿拉伯数字和英文小写字母组成};

{单位名称,varchar(10)}

{单位号,char(10)}

(2)、数据结构数据结构描述=

{业务员信息,组成:

{职工号,姓名,年龄,职称}};

{订单信息,组成:

{订单号,单位号,操作员号,地址,签订日期,单价,数量,交货日期}};

{客户信息,组成:

{客户号,客户姓名,账号,地址,联系方式}};

(3)、数据流数据流描述=

{员工信息流,来源:

人工录入,去向:

员工信息表,组成:

{业务员信息}};

(4)、数据存储

数据存储描述={订单明细,{客户信息流,产品信息流,员工信息流},{订单明细信息流},组成:

{业务员信息,商品信息,客户信息}};

(5)、处理过程

处理过程描述={下单,输入:

{客户信息流,产品信息流,员工信息流},输出:

{订单明细信息流},处理:

{通过员工的操作,使显示具体的订单信息表和订单明细表}};

二、概念模型设计

订单管理系统E-R图如下:

交货日期

订单明细

生产订单

数量

单价

职工号 姓名 签订

日期

1

业务员 处理

n

n

包含

1

订单

1 n

拆分

订单号

单位

地址

n

供给

供应量

n

签订日期

1

年龄 职称 订单数

下单

单价

商品号 名称 规格 单价 描述

订单号

单位名称商品号

商品名规格

商品

1

生产商 商品名 数量

单价

构成

账号

n

n

合并

1

联系方式

操作员号

1

客户

交货

日期

数量

商品号

供应商

姓名 地址 电话号码 账号

客户姓名 账号 地址 联系方式

在这里,我们为了简化数据库,将订单管理设置为只处理一种商品,所以订单的拆分和合并联系分别是1:

n和n:

1。

在订单明细中可以反映商品的供应者,在生产订单中可以显示每个供应商的供应量等信息。

生产订单属性中的生产商号和供应商供应商号为异名同义,订单明细属性中的单位名称和客户信息属性的客户姓名为异名同义。

三、逻辑模型设计

职工信息表

属性名

数据类型

可否为空

备注

职工号

Char(6)

主键

姓名

Varchar(8)

年龄

Int

职称

Varchar

订单信息表

属性名

数据类型

可否为空

备注

订单号

Char(6)

主键

单位姓名

Varchar(20)

外键

地址

商品单价数量

签订日期

Varchar(100)

MoneyIntDatetime

否否否

交货日期操作员号

DatetimeChar(6)

否否

外键

商品号

Varchar(10)

外键

商品信息表

属性名

数据类型

可否为空

备注

商品号

Varchar(10)

主键

名称

Varchar(20)

单价

Money

规格

Varchar(20)

描述

Varchar(50)

订单明细表

属性名

数据类型

可否为空

备注

订单号

Char(6)

外键

商品号

商品名

Char(10)

Varchar(20)

外键

单价

Money

数量

Int

签订日期

Datetime

交货日期

Datetime

单位名称规格

生产商号

Char(10)Varchar(20)Char(10)

否否否

外键

外键

生产订单信息表

属性名

数据类型

可否为空

备注

生产商地址单价

Varchar(20)Varchar(100)

Money

否否否

外键

账号联系方式

Varchar(20)Varchar(21)

否否

供应量

Int

订单号

Char(6)

外键

商品号

Char(10)

外键

供应商信息表

属性名

数据类型

可否为空

备注

姓名地址

Varchar(20)

Varchar(100)

否否

主键

电话号码账号

Varchar(20)

Varchar(20)

可否

客户信息表

属性名

数据类型

可否为空

备注

客户姓名账号地址

联系方式

Varchar(20)Varchar(20)Varchar(100)

Varchar(20)

否否否否

主键

四、物理模型设计

(1)、由于经常在查询条件中出现,所以决定在职工信息表中的职工号上建立唯一索引;

(2)、由于经常在连接操作的链接条件中出现,所以决定在订单信息表中的订单号上建立唯一索引;

(3)、由于经常在查询条件中出现,所以决定在客户信息表中的客户姓名上建立唯一索引;

(4)、由于经常在查询条件中出现,所以决定在供应商信息表中的姓名上建立唯一索引;

(5)、由于经常在连接操作的链接条件中出现,所以决定在商品信息表中的商品号上建立唯一索引;

五、数据库实施和维护

1、创建数据库

createdatabase订单管理系统

2、创建表

创建职工信息表

createtable职工信息表

(职工号char(6)notnullprimarykey,

姓名Varchar(8)notnull,

年龄Intnotnull,

职称Varchar(10)notnull,)

创建商品信息表

createtable商品信息表

(商品号Varchar(10)notnullprimarykey,

名称Varchar(20)notnull,

单价Moneynotnull,

规格Varchar(20)notnull,

描述Varchar(50))

创建供应商信息表

createtable供应商信息表

(姓名Varchar(20)notnullprimarykey,

地址Varchar(100)notnull,

电话号码Varchar(20)notnull,

账号Varchar(50)notnull)

创建客户信息表

createtable客户信息表

(客户姓名Varchar(20)notnullprimarykey,

账号Varchar(20)notnull,

地址Varchar(100)notnull,

联系方式Varchar(20)notnull)

创建订单信息表

createtable订单信息表

(订单号char(6)notnullprimarykey,

地址Varchar(100)notnull,商品单价Moneynotnull,数量intnotnull,

签订日期datetimenotnull,

交货日期datetimenotnull,

单位Varchar(20)foreignkeyreferences客户信息表(客户姓名),操作员号char(6)foreignkeyreferences职工信息表(职工号),商品号Varchar(10)foreignkeyreferences商品信息表(商品号))

创建订单明细表

createtable订单明细表

(订单号char(6)notnullforeignkeyreferences订单信息表(订单号),

商品号Varchar(10)notnullforeignkeyreferences商品信息表(商品号),商品名Varchar(20)notnull,

单价Moneynotnull,

数量intnotnull,

签订日期datetimenotnull,

交货日期datetimenotnull,

单位Varchar(20)foreignkeyreferences客户信息表(客户姓名),规格Varchar(20)notnull,

生产商Varchar(20)foreignkeyreferences供应商信息表(姓名))创建生产订单信息表

createtable生产订单信息表(地址Varchar(100)notnull,单价Moneynotnull,

账号Varchar(20)notnull,

联系方式Varchar(21)notnull,

供应量intnotnull,

生产商Varchar(20)notnullforeignkeyreferences供应商信息表(姓名),订单号char(6)notnullforeignkeyreferences订单信息表(订单号),

商品号Varchar(10)notnullforeignkeyreferences 商品信息表(商品号))

3、创建视图

Createview订单明细视图

Asselect订单号,单位,商品号,生产商

From订单明细表

Createview生产订单视图

Asselect生产商,订单号,商品号,供应量,联系方式

From生产订单表

4、创建索引

在主键属性和外键属性列上都建立索引,检查唯一性和完整性,加快连接查询速度。

CreateuniqueindexIX_职工号on职工信息表(职工号);CreateuniqueindexIX_订单号on订单信息表(订单号);

CreateuniqueindexIX_客户姓名on客户信息表(客户姓名);CreateuniqueindexIX_姓名on供应商信息表(姓名);

CreateuniqueindexIX_商品号on商品信息表(商品号);

5、表中数据操作

1、给数据库赋值

insert

into职工信息表

values('070934','kimikong',24,'操作员');

insert

into职工信息表

values('070317','massa',29,'主管');

insert

into职工信息表

Values('040201','aloso','34','操作员')

Insert

Into商品信息表

Values('07031760','klmin',2000,'长度172cm,重量60KG','畅销货啊');

Insert

Into商品信息表

Values('07031763','lljing',1500,'长度165cm,体重70KG','有点胖胖');

Insert

Into客户信息表

Values('雷敬文','07031761','16-624','15869027542');

Insert

Into客户信息表

Values('李俊','07031764','16-610','1586902432');

Insert

Into 订单信息表

Values('001',

'杭电16#624',2000,10,'2009.09.15','2009.09.18','雷经文','070934','07031760')

Insert

Into 订单信息表

Values('002',

'杭电16#625',1500,20,'2009.09.14','2009.09.17','李俊','040201','07031763')

Insert

Into 订单明细表

Values('001','07031760','klmin',2000,10,'2009.09.15','2009.09.16','雷经文','长度

172cm,重量60KG','老大')

Insert

Into 订单明细表

Values('002','07031763','lljing',1500,20,'2009.09.14','2009.09.17','李俊','长度165cm,

重量70KG','老邱')

Insert

Into 生产订单信息表

Values('杭电2',2000,'166261','110转1',10,'老大','001','07031760')

Insert

Into 生产订单信息表

Values('杭电3',1500,'166262','110转2',20,'老邱','002','07031763')

Insert

In²耀 供应商信息表

Values('老大','杭电2','110转1','166261')

Insert

Into 供应商信息表

Values('老邱','杭电3','110转2','166262')

2、其他操作

把客户信息表中李俊的联系方式更正为15869023242update客户信息表

set联系方式=15869023242where客户姓名='李俊';

员工因故辞职

Delete from职工信息表

where 职工号='070317'

6、使用表格操作

1、查找所有职工的年龄,并按年龄大小进行排序select职工号,姓名,年龄

from职工信息表

orderby年龄

2、查找订单号为001的商品的描述select订单号,a.商品号,名称,单价,描述from订单信息表asa,商品信息表asb

where订单号='001'andb.商品号=(select商品号

from订单明细表

where订单号='001')

3、查找由供应商老大供应商的商品情况select商品号,商品名,单价,规格,数量from订单明细表

where生产商='老大'

4、查找指定客户购买的商品的具体信息select商品号,名称,单价,规格,描述

from商品信息表

where商品号=(select商品号from订单明细表where单位='雷经文')

7、创建触发器,游标和存储过程

在订单明细表上建立触发器,实现在商品规格作出改变时,相应的订单明细信息也作出更正。

Use订单管理系统

Go

Createtriggertri_商品信息更新on订单明细表

ForupdateAs

If @@rowcount=0Return

Update商品信息表

Set规格=(select规格 from inserted)Where规格=(select规格from deleted)If @@error!

=0

Begin

RollbackReturn

EndReturn

Go

在客户信息表建立游标,用游标和变量逐行输出客户姓名和联系方式

declare@namevarchar(20),@telephonevarchar(20)declarecur_1cursor

forselect客户姓名,联系方式

from客户信息表

forreadonlyopencur_1

fetchfromcur_1into@name,@telephone

print'客户姓名'+@name+'联系方式'+@telephonewhile@@fetch_status=0

begin

fetchfromcur_1into@name,@telephone

print'客户姓名'+@name+'联系方式'+@telephoneend

closecur_1deallocatecur_1

在数据库中创建一个存储过程,返回指定的生产订单信息

createprocpro_生产订单信息@生产商Varchar(20),

@订单号char(6),@商品号Varchar(10),@单价Money,@供应量intoutputAs

select订单号,商品号,单价,供应量

from生产订单信息表

where生产商='老邱'

Go

六、总结

通过这次数据库课程,我学到了不少。

我发现考试题目会做根本不代表也会设计数据库系统,整个数据库系统最重要的环节是需求分析,只有把业务流程都理顺了之后才能做下面的环节。

我们的课题——外贸公司的订单管理,网上资料比较少,在老师的指导下,我们最终搞明白了订单管理的具体流程和板块。

E-R图不是那么好画的,在设计的时候要考虑的因素,因为我们是第一次,在转换为逻辑模式和后面的数据库实施时,我们对E-R图作了一遍又一遍的修改,发现最后的图跟刚开始的图已经很不一样了。

在整个数据库设计过程中,我们得到了陈老师细心的指导,尤其是前面需求分析和概念模型设计阶段,这对我们的成果非常重要。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > IT计算机 > 电脑基础知识

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2