订单销售数据库设计说明.docx
《订单销售数据库设计说明.docx》由会员分享,可在线阅读,更多相关《订单销售数据库设计说明.docx(16页珍藏版)》请在冰豆网上搜索。
订单销售数据库设计说明
五、逻辑设计
5.1ER图
5.2关系模型
供应商(供应商编号,名称,地址,联系)
产品(产品编号,产品名称,产品类别,售价,出厂价,存货量)
供应(供应商编号,产品编号)
订购(产品编号,订单编号,数量)
客户(客户编号,,通信地址,)
订单(订单编号,日期,客户编号,雇员编号)
雇员(雇员编号,,联系,工资)
注:
有下划线的表示该属性为主码。
六、物理设计
6.1表汇总
表名
功能说明
表Suppliers
供应商表,存储供应商的编号等信息
表Product
产品表,存储产品的编号、数量等信息
表SP
供应商产品供应表,存储供应商所供应的产品对应信息
表Orders
订单表,存储订单的编号、日期等信息
表PO
产品订购表,存储产品订购的对应信息
表Employee
雇员表,存储雇员的编号等信息
表Customer
客户表,存储客户的编号等信息
6.2表[1]:
[Suppliers表](供应商表)
表名
Suppliers(供应商表)
数据库用户
Sa
主键
Snumber
其他排序字段
无
索引字段
无
序号
字段名称
数据类型(精度围)
允许为空Y/N
唯一Y/N
区别度
默认值
约束条件/说明
1
Snumber
char(12)
N
Y
高
无
主键/供应商号
2
Sname
char(30)
N
N
中
无
供应商名称
3
Saddress
char(30)
Y
N
中
无
供应商地址
4
Stelnum
int
Y
N
高
无
供应商
sql脚本
--建立供应商表
createtableSuppliers--供应商表
(Snumberchar(12)primarykey,--供应商编号,主码
Snamechar(30)notnull,--
Saddresschar(30),--地址
Stelnumint--
);
6.3表[2]:
[Product表](产品表)
表名
Product(产品表)
数据库用户
sa
主键
Pnumber
其他排序字段
无
索引字段
无
序号
字段名称
数据类型(精度围)
允许为空Y/N
唯一Y/N
区别度
默认值
约束条件/说明
1
Pnumber
char(12)
N
Y
高
无
主键/产品编号
2
Pname
char(30)
N
Y
高
无
产品名称
3
Pcategory
char(15)
Y
N
低
无
产品类别
4
Pprice
int
Y
N
中
无
产品售价
5
Pex_price
real
Y
N
中
无
产品出厂价
6
Pinventory
real
Y
N
中
无
产品库存量
sql脚本
--建立产品表
createtableProduct--产品表
(Pnumberchar(12)primarykey,--产品编号,主码
Pnamechar(30)notnull,--产品名称
Pcategorychar(15),--产品类别--
Ppriceint,--售价--
Pex_pricereal,--出厂价--
Pinventoryreal--存货量--
);
6.4表[3]:
[SP表](供应商产品供应表)
表名
SP(供应商产品供应表)
数据库用户
sa
主键
Snumber,Pnumber
其他排序字段
无
索引字段
无
序号
字段名称
数据类型(精度围)
允许为空Y/N
唯一Y/N
区别度
默认值
约束条件/说明
1
Snumber
char(12)
N
Y
高
无
主键/供应商号
2
Pnumber
char(12)
N
Y
高
无
主键/产品编号
sql脚本
--建立供应商产品供应表
createtableSP--供应商供应产品表--
(Snumberchar(12),--供应商编号,外码
Pnumberchar(12),--产品编号,外码
primarykey(Snumber,Pnumber),--联合主码
foreignkey(Pnumber)referencesProduct(Pnumber)
ondeletecascade
onupdatecascade,
foreignkey(Snumber)referencesSuppliers(Snumber)
ondeletecascade
onupdatecascade
);
6.5表[4]:
[Orders表](订单表)
表名
Orders(订单表)
数据库用户
sa
主键
Onumber
其他排序字段
无
索引字段
无
序号
字段名称
数据类型(精度围)
允许为空Y/N
唯一Y/N
区别度
默认值
约束条件/说明
1
Onumber
char(12)
N
Y
高
无
主键/订单号
2
Odate
date
N
N
低
无
订单日期
3
Enumber
char(12)
Y
N
中
无
雇员号
4
Cnumber
char(12)
N
N
高
无
客户号
sql脚本
--建立订单表
createtableOrders--订单表
(Onumberchar(12)primarykey,--编号,主码
Odatedate,--日期
Enumberchar(12),--设置雇员号,外码
Cnumberchar(12),--设置客户号,外码
foreignkey(Cnumber)referencesCustomer(Cnumber)
ondeletecascade
onupdatecascade,
foreignkey(Enumber)referencesEmployee(Enumber)
ondeletecascade
onupdatecascade
);
6.6表[5]:
[PO表](产品订购表)
表名
PO(产品订购表)
数据库用户
sa
主键
Pnumber,Onumber
其他排序字段
无
索引字段
无
序号
字段名称
数据类型(精度围)
允许为空Y/N
唯一Y/N
区别度
默认值
约束条件/说明
1
Pnumber
char(12)
N
Y
高
无
主键/产品号
2
Onumber
char(12)
N
Y
高
无
主键/订单号
3
Quantity
int
N
N
低
无
订购产品数量
sql脚本
--建立产品订购表
createtablePO--产品订购表
(Pnumberchar(12),--产品编号
Onumberchar(12),--订单编号
Quantityint,--产品数量
primarykey(Pnumber,Onumber),--联合主码
foreignkey(Pnumber)referencesProduct(Pnumber)--外码
ondeletecascade
onupdatecascade,
foreignkey(Onumber)referencesOrders(Onumber)--外码
ondeletecascade
onupdatecascade
);
6.7表[6]:
[Employee表](雇员表)
表名
Employee(雇员表)
数据库用户
sa
主键
Enumber
其他排序字段
无
索引字段
无
序号
字段名称
数据类型(精度围)
允许为空Y/N
唯一Y/N
区别度
默认值
约束条件/说明
1
Enumber
char(12)
N
Y
高
无
主键/雇员号
2
Ename
char(10)
N
N
中
无
雇员名称
3
Etelnum
int
N
Y
高
无
雇员
4
Ewages
real
N
N
低
无
雇员薪资
sql脚本
--建立雇员表
createtableEmployee--雇员表
(Enumberchar(12)primarykey,--编号
Enamechar(10),--名字
Etelnumint,--
Ewagesreal--工资
);
6.8表[7]:
[Customer表](客户表)
表名
Customer(客户表)
数据库用户
sa
主键
Cnumber
其他排序字段
无
索引字段
无
序号
字段名称
数据类型(精度围)
允许为空Y/N
唯一Y/N
区别度
默认值
约束条件/说明
1
Cnumber
char(12)
N
Y
高
无
主键/客户表
2
Cname
char(10)
N
N
中
无
客户名称
3
Caddress
char(30)
Y
N
中
无
客户地址
4
Ctelnum
int
Y
Y
高
无
客户
sql脚本
--建立客户表
createtableCustomer--客户表
(Cnumberchar(12)primarykey,--编号
Cnamechar(10),--
Caddresschar(30),--地址
Ctelnumint--
);
6.9视图的设计
1、建立一雇员信息的视图
目的:
屏蔽雇员的工资信息。
功能:
能够向管理员提供简明,直接的雇员信息展示。
意义:
有利于数据库安全的维护,防止任意修改数据库中的雇员信息。
createviewview_Employee--建立Employee视图,屏蔽工资属性
as
selectEnumber,Ename,Etelnum
fromEmployee
withcheckoption;
2、建立一产品信息的视图
目的:
屏蔽产品的出厂价信息。
功能:
能够向管理员提供简明,直接的产品信息展示。
意义:
有利于数据库安全的维护,防止任意修改数据库中的产品信息。
createviewview_Producte--建立Product视图,屏蔽出厂价属性
as
selectPnumber,Pname,Pcategory,Pprice,Pinventory
fromview_Producte
withcheckoption;
6.10存储过程的设计
1、查询订单数量
功能:
查询订单的数量目的:
存储查询订单数量的操作
意义:
下次重复同样的动作时,可直接执行存储过程,简化操作步骤
createprocedureprocedure_SearchOrdersNum--查询订单的存储过程
AsselectCOUNT(*)'订单总数'--查询订单数量fromOrders;
2、查询客户的