销售订单数据库管理系统.docx
- 文档编号:27813379
- 上传时间:2023-07-05
- 格式:DOCX
- 页数:32
- 大小:131.98KB
销售订单数据库管理系统.docx
《销售订单数据库管理系统.docx》由会员分享,可在线阅读,更多相关《销售订单数据库管理系统.docx(32页珍藏版)》请在冰豆网上搜索。
销售订单数据库管理系统
1.引言
1.1编写目的
本文档是销售订单数据库管理系统设计文档的组成部分,编写数据库设计文档的目的是:
明确数据库的表名、字段名等数据信息,用来指导后期的数据库脚本的开发,本文档遵循《SQLSERVER2008数据库设计和开发规》。
本文档的读者对象是需求人员、系统设计人员、开发人员、测试人员。
设计该数据库的目的是为了能够模拟完成一次订单销售流程。
1.2参考资料
表1.2.1
资料名称
作者
文件编号、版本
《数据库系统概论》
王珊、萨师煊
2006年5月第4版
《数据库设计入门经典》
鲍威尔
2007年3月第1版
《数据库原理》
克罗恩科
2005年6月第1版
2.需求规约
2.1业务描述
销售订单数据库管理系统的总目标是:
在计算机网络,数据库和先进的开发平台上,利用现有的软件,配置一定的硬件,开发一个具有开放体系结构的、易扩充的、易维护的、具有良好人机交互界面的销售订单数据库管理系统,实现订单销售的自动化的计算机系统,为商品供应商提供准确、精细、迅速的订单销售信息。
具体功能为供应商供应产品、请假的申请,出差的记录输入到系统中,系统将为员工记录这些信息。
提示:
本部分完成此数据库系统的业务描述,例如:
(1)数据库系统创建的背景
(2)数据库系统要完成的业务流程及工作容
(3)揭示该数据库的资源需求和设计约束
2.2需求分析
1、数据要求及数据关系
(1)数据结构:
此销售订单数据库管理系统包括供应商、产品、客户、雇员4个实体。
每个供应商包含供应商编号、名称、地址、联系等信息;每种产品包含产品号、产品名称、产品类别等信息;客户包含编号、姓名、通信地址、等信息;雇员包括编号、姓名、联系等信息。
(2)数据关系:
供应商与产品有供应关系,包含销量和库存量;供应商与雇员有雇用关系;雇员,客户,产品有订单关系,包含订单号,日期,订购量,总额;客户所下达的订单号的需求量如果多于库存量,那么订单将不生成。
(3)对应关系:
每个供应商可供应多种产品,每种产品可由多个供应商供应;一个客户可下多个订单,每个订单只能由一个客户下;一个雇员可管理多个订单,每个订单只能由一个雇员管理;一个订单订购多种产品每种产品可在不同的订单中订购;一个供应商能雇用多个雇员,一个雇员只能被一个供应商雇用。
2、增删改查操作:
(1)增加操作:
此销售订单数据库管理系统能够插入供应商数据,能够插入产品数据,能够插入客户信息,能够插入雇员信息,能够进行下订单操作插入订单信息。
(2)删除操作:
此销售订单数据库管理系统能够删除供应商数据,能够删除产品数据,能够删除客户信息,能够删除雇员信息,能够进行退订操作删除订单信息。
(3)更新操作:
此销售订单数据库管理系统能够改变供应商数据,改变产品数据,改变客户信息,改变雇员信息。
(4)查询操作:
通过供应商编号能查询到供应商编号、名称、地址、联系等信息;通过产品号能查询到产品号,产品名称,产品类别,库存数量,售价以;能通过客户编号能查询到客户所有客户编号,姓名,通信地址,;通过雇员号能查询到雇员雇员编号,雇员姓名,雇员,雇员工资;此外,通过供应商编号还能查询到所有雇员信息,通过雇员号可以查询到该雇员的供应商所有信息;再通过供应商编号及产品号能过查询到供应商的产品的产品量,接着通过产品号分组号能够查询所有产品的总销量,最畅销产品,通过供应商编号分组能够查询该供应商的所有产品的销量,最受欢迎供应商;通过产品号跟订单号能够查询到订购量,及总额,再通过产品号分组能够可以查询到所有产品的总订购量;通过雇员号能偶查询到所负责的订单信息,通过客户号能查询到所下达订单及所有信息,通过订单号能够查询到所有订单的订购的所有产品及信息,所负责雇员及所有信息,所下达客户及所有信息。
3、编写要求:
(1)此销售订单数据库管理系统全部使用sql语句编写;
(2)增删改查及下订单退订等操作通过存储过程来实现,定义级联删除约束,下订单及退订使用到触发器,实现并发操作。
(3)给不同用户定义不同的视图,使他们看到是不同的容。
3.数据库环境说明
表3.1
数据库实例
数据库系统
数据库部署环境
数据库设计工具
数据库存放位置
说明
销售订单数据库管理系统
SqlServer2008
WindowsXP
SqlServer
存放位置,绝对路径/相对路径
用于订单销售管理
4.数据库的命名规则
4.1数据库对象命名规则
表4.1.1
数据库对象
命名规则
备注
表
该表名称的英文字符串
例如:
supplier,供应商表
视图
view_功能描述字符串
例如:
view_product产品视图
触发器
tri_功能描述字符串
例如:
tri_insert更改库存触发器
存储过程
Pro_功能描述字符串
例如:
pro_insert_suppliers存储过程
4.2数据项编码规则
表4.2.1
数据项
命名规则
数据类型
长度围
备注
供应商编号
英文拼写的加功能简写
可变长度字符串
12位
supplier_no
产品号
英文拼写的加功能简写
可变长度字符串
12位
product_no
订单号
英文拼写的加功能简写
可变长度字符串
6位
ordero
雇员号
英文拼写的加功能简写
可变长度字符串
12位
Employee_no
客户号
英文拼写的加功能简写
可变长度字符串
12位
Customer_no
供应商名称
英文拼写的加功能简写
可变长度字符串
20位
supplier_name
供应商
英文拼写的加功能简写
可变长度字符串
20位
supplier_no
供应商地址
英文拼写的加功能简写
可变长度字符串
30位
supplier_address
产品名称
英文拼写的加功能简写
可变长度字符串
20位
product_name
产品类型
英文拼写的加功能简写
可变长度字符串
20位
product_class
售价
英文拼写的加功能简写
整数
product_price
存货量
英文拼写的加功能简写
整数
rest_product
订单日期
英文拼写的加功能简写
可变长度字符串
20位
order_time
客户姓名
英文拼写的加功能简写
可变长度字符串
20位
customer_name
客户地址
英文拼写的加功能简写
可变长度字符串
20位
customer_address
客户
英文拼写的加功能简写
整数
20位
customer_phone
订购数量
英文拼写的加功能简写
整数
order_amount
雇员姓名
英文拼写的加功能简写
可变长度字符串
20位
employee_name
雇员
英文拼写的加功能简写
整数
20位
employee_phone
5.逻辑设计
5.1ER图
图5.1.1
5.2关系模式
供应商(供应商编号,名称,地址,联系)
产品(产品号,产品名称,产品类别,售价)
供应(供应商编号,产品号,供应量,存货数量)
雇员(雇员号,姓名,联系,工资,供应商编号)
客户(客户编号,姓名,通信地址,)
订单(订单号,客户编号,雇员编号,日期)
订单细则表(产品号,数量,总额,订单号,供应商号)
注:
有下划线的表示该属性为主码。
表5.2.1
供应商表(supplier)
字段中文名
字段名
数据类型
是否为空
约束
供应商编号
supplier_no
varchar(12)
否
Primarykey
供应商名
supplier_name
varchar(20)
否
供应商地址
supplier_address
varchar(20)
否
供应商
supplier_phone
vachar(12)
否
表5.2.2
产品表(product)
字段中文名
字段名
数据类型
是否为空
约束
产品号
product_no
varchar(12)
否
Primarykey
产品名
product_name
varchar(20)
否
产品类别
product_family
varchar(20)
否
产品价格
product_price
smallint
否
表5.2.3
供应表(sp)
字段中文名
字段名
数据类型
是否为空
约束
供应商编号
supplier_no
varchar(12)
否
primarykey
foreignkey
产品号
product_no
varchar(12)
否
库存数量
rest_product
smallint
否
销售量
sp_amount
smallint
否
表5.2.4
客户表(customer)
字段中文名
字段名
数据类型
是否为空
约束
客户号
customer_no
varchar(12)
否
primarykey
客户名
customer_name
varchar(20)
否
通信地址
rest_product
varchar(20)
否
sp_amount
varchar(12)
否
表5.2.5
雇员表(employee)
字段中文名
字段名
数据类型
是否为空
约束
雇员号
employee_no
varchar(12)
否
primarykey
雇员姓名
employee_name
varchar(20)
否
雇员
supplier_phone
varchar(12)
否
雇员工资
employee_salary
smallint
否
供应商编号
supplier_no
varchar(12)
否
表5.2.6
订单表(epc)
字段中文名
字段名
数据类型
是否为空
约束
雇员号
employee_no
varchar(12)
否
foreignkey
客户号
customer_no
varchar(20)
否
foreignkey
订单号
order_no
varchar(12)
否
primarykey
日期
order_time
varchar(20)
否
表5.2.7
订单细则(epc_detailed)
字段中文名
字段名
数据类型
是否为空
约束
产品号
product_no
varchar(12)
否
foreignkey
数量
employee_name
smallint
否
订单号
order_no
varchar(12)
否
primarykey
总额
epc_amount
smallint
否
供应商编号
supplier_no
varchar(12)
6.物理设计
6.1表汇总
表6.1.1
表名
功能说明
表supplier
供应商表,存储供应商的编号,名称,地址,联系信息
表product
产品表,存储产品号,产品名称,产品类别,售价信息
表sp
供应表,存储供应商编号,产品号,供应量信息,存货数量
表employee
雇员表,存储雇员号,姓名,联系,工资,供应商信息
表customer
客户表,存储客户编号,姓名,通信地址,信息
表epc
订单表,存储订单号,客户编号,雇员编号,产品号,日期等信息
表epc_detailed
订单细则表,存储产品号,订单号,数量,总额信息
6.2表[1][supplier表](供应商表)
表6.2.1
表名
supplier(供应商表)
数据库用户
sa
主键
supplier_no
其他排序字段
无
索引字段
无
序号
字段名称
数据类型(精度围)
允许为空Y/N
唯一Y/N
区别度
默认值
约束条件/说明
1
supplier_no
char(12)
N
Y
高
无
主键/供应商号
2
supplier_name
char(20)
N
N
中
无
供应商名称
3
supplier_address
char(20)
N
N
中
无
供应商地址
4
supplier_phone
char(20)
N
N
高
无
供应商
sql脚本
createtablesupplier
(supplier_novarchar(12)primarykey,
supplier_namevarchar(20)notnull,
supplier_addressvarchar(20)notnull,
supplier_phonevarchar(12)notnull
);
--供应商表
6.3表[2][product表](产品表)
表6.3.1
表名
product(产品表)
数据库用户
sa
主键
product_no
其他排序字段
无
索引字段
无
序号
字段名称
数据类型(精度围)
允许为空Y/N
唯一Y/N
区别度
默认值
约束条件/说明
1
prduct_no
char(12)
N
Y
高
无
主键/产品编号
2
product_name
char(20)
N
N
高
无
产品名称
3
product_class
char(20)
N
N
低
无
产品类别
4
prduct_price
smallint
N
N
中
无
产品售价
sql脚本
createtableproduct
(product_novarchar(12)primarykey,
product_namevarchar(20)notnull,
product_familyvarchar(20)notnull,
product_pricesmallintnotnull
);
--产品表
6.4表[3][sp表](供应关系表)
表6.4.1
表名
sp(供应关系表)
数据库用户
sa
主键
supplier_no,product_no
其他排序字段
无
索引字段
无
序号
字段名称
数据类型(精度围)
允许为空Y/N
唯一Y/N
区别度
默认值
约束条件/说明
1
supplier_no
char(12)
N
N
低
无
主键/供应商号
2
product_no
char(12)
N
N
低
无
主键/产品编号
3
sp_amount
smallint
N
N
低
无
销售量
4
rest_product
smallint
N
N
低
无
库存量
sql脚本
createtablesp
(supplier_novarchar(12)notnull,
product_novarchar(12)notnull,
sp_amountsmallintnotnull,
rest_productsmallintnotnull,
primarykey(supplier_no,product_no),
foreignkey(supplier_no)referencessupplier(supplier_no)
ondeletecascade
onupdatecascade,
foreignkey(product_no)referencesproduct(product_no)
ondeletecascade
onupdatecascade
);
--供应表
6.5表[4][epc表](订单表)
表6.5.1
表名
epc(订单表)
数据库用户
sa
主键
order_no
其他排序字段
无
索引字段
无
序号
字段名称
数据类型(精度围)
允许为空Y/N
唯一Y/N
区别度
默认值
约束条件/说明
1
order_no
char(6)
N
Y
高
无
主键/订单号
2
order_time
char(12)
N
N
低
无
订单日期
3
employee_no
char(12)
N
N
中
无
雇员号
4
customer_no
char(12)
N
N
高
无
客户号
sql脚本
createtableepc
(order_novarchar(6)primarykey,
order_timevarchar(20)notnull,
customer_novarchar(12)notnull,
employee_novarchar(12)notnull,
foreignkey(employee_no)referencesemployee(employee_no)
ondeletecascade
onupdatecascade,
foreignkey(customer_no)referencescustomer(customer_no)
ondeletecascade
onupdatecascade
);
--订单表
6.6表[5][epc_detailed表](订单细则表)
表6.6.1
表名
epc_detailed(订单细则表)
数据库用户
sa
主键
无
其他排序字段
无
索引字段
无
序号
字段名称
数据类型(精度围)
允许为空Y/N
唯一Y/N
区别度
默认值
约束条件/说明
1
order_no
char(6)
N
Y
高
无
订单编号
2
supplier_no
char(6)
N
N
高
无
供应商编号
3
product_no
char(6)
N
N
高
无
产品号
4
order_amount
smallint
N
N
中
无
订购数量
5
order_money
smallint
N
N
低
无
订购总额
sql脚本
createtableepc_detailed
(order_novarchar(6)notnull,
product_novarchar(12)notnull,
order_amountsmallintnotnull,
order_moneysmallintnotnull,
supplier_novarchar(12)notnull,
foreignkey(supplier_no)referencessupplier(supplier_no)
ondeletecascade
onupdatecascade,
foreignkey(product_no)referencesproduct(product_no)
ondeletecascade
onupdatecascade,
foreignkey(order_no)referencesepc(order_no)
);
--订单细则表
6.7表[6][eployee表](雇员表)
表6.7.1
表名
eployee(雇员表)
数据库用户
sa
主键
employee_no
其他排序字段
无
索引字段
无
序号
字段名称
数据类型(精度围)
允许为空Y/N
唯一Y/N
区别度
默认值
约束条件/说明
1
employee_no
char(12)
N
Y
高
无
主键/雇员号
2
employee_name
char(20)
N
N
中
无
雇员名称
3
employee_phone
smallint
N
Y
高
无
雇员
4
employee_salary
smallint
N
N
低
无
雇员工资
sql脚本
createtableemployee
(employee_novarchar(12)primarykey,
employee_namevarchar(20)notnull,
employee_phonevarchar(12)notnull,
employee_salarysmallintnotnull,
supplier_nochar(12),
foreignkey(supplier_no)referencessupplier(supplier_no)
ondeletecascade
onupdatecascade
);
--雇员表
6.8表[7][customer表](客户表)
表6.8.1
表名
customer(客户表)
数据库用户
sa
主键
customer_no
其他排序字段
无
索引字段
无
序号
字段名称
数据类型(精度围)
允许为空Y/N
唯一Y/N
区别度
默认值
约束条件/说明
1
customer_no
char(12)
N
Y
高
无
主键/客户编号
2
customer_name
char(20)
N
N
中
无
客户名称
3
customer_address
char(20)
N
N
中
无
客户地址
4
customer_phone
char(12)
N
N
高
无
客户
sql脚本
createtablecustomer
(customer_novarchar(12)primarykey,
customer_namevarchar(20)notnull,
customer_phonevarchar(12)notnull,
customer_addressvarchar(20)notnull
);
--客户表
6.9视图的设计
1、建立一供应商查询视图
目的:
供供应商查询
功能:
能够查询到所有产品销售情况
意义:
使供应商能够看到最畅销的产品,及时调整销售策略。
Createviewsupplier_viwe
as
selectproduct_no,sum(sp_amount)’产品总销售量’
fromsp
groupbyproduct_no
图6.9.1
1、建立一客户查询视图
目的:
供客户
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 销售 订单 数据库 管理 系统