订单销售数据库设计.docx

上传人:b****5 文档编号:29396238 上传时间:2023-07-23 格式:DOCX 页数:34 大小:113.82KB
下载 相关 举报
订单销售数据库设计.docx_第1页
第1页 / 共34页
订单销售数据库设计.docx_第2页
第2页 / 共34页
订单销售数据库设计.docx_第3页
第3页 / 共34页
订单销售数据库设计.docx_第4页
第4页 / 共34页
订单销售数据库设计.docx_第5页
第5页 / 共34页
点击查看更多>>
下载资源
资源描述

订单销售数据库设计.docx

《订单销售数据库设计.docx》由会员分享,可在线阅读,更多相关《订单销售数据库设计.docx(34页珍藏版)》请在冰豆网上搜索。

订单销售数据库设计.docx

订单销售数据库设计

 

五、逻辑设计

 

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,--

编号

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、查询客户的订单信息

功能:

查询客户的订单信息目的:

存储查询客户的订单信息的操作

意义:

下次重复同样的动作时,可直接执行存储过程,简化操作步骤

createprocedureprocedure_CustomerOrders--查询某个客户订单信息

@Cnamechar(10)asselectOnumber,Odate,Enumber

fromOrders,Customer

whereCnamelike@CnameandCustomer.CnumberlikeOrders.Cnumber;

 

3、查询订单最多的客户信息

功能:

查询订单最多的客户信息目的:

存储查询订单最多的客户信息的操作

意义:

下次重复同样的动作时,可直接执行存储过程,简化操作步骤

createprocedureprocedure_SearchMaxOrders--查询订单最多的客户信息

as

selectCnumber,Cname,Caddress,Ctelnum

fromOrders,Customer

whereOrders.Cnunmer=Customer.Cnunmer

groupbyCnumberhavingMAX(Cnumber);

 

4、查询客户信息

功能:

查询客户信息目的:

存储查询客户信息的操作

意义:

下次重复同样的动作时,可直接执行存储过程,简化操作步骤

createprocedureprocedure_SearchCustomer--查询某客户信息

@Cnamechar(10)

as

 

select*

fromCustomer

whereCname=@Cname;

 

5、查询雇员信息

功能:

查询雇员信息目的:

存储查询雇员信息的操作

意义:

下次重复同样的动作时,可直接执行存储过程,简化操作步骤

createprocedureprocedure_SearchEmployee--查询某雇员信息

@Enamechar(10)

as

select*

fromEmployee

whereEname=@Ename;

 

6、查询某订单对应的产品信息

功能:

查询某订单对应的产品信息目的:

存储查询某订单对应的产品信息的操作

意义:

下次重复同样的动作时,可直接执行存储过程,简化操作步骤

createprocedureprocedure_SearchPO--查询某订单的产品信息

@Onumberchar(12)

as

selectOnumber,Product.Pnumber,Pname,Pcategory,Pprice,Pex_price,PinventoryfromProduct,PO

whereOnumber=@OnumberandPO.Pnumber=Product.Pnumber;

 

7、查询产品信息

功能:

查询产品信息目的:

存储查询产品信息的操作

意义:

下次重复同样的动作时,可直接执行存储过程,简化操作步骤

createprocedureprocedure_SearchProduct--查询某产品信息

@Pnumberchar(12)

as

selectPnumber,Pname,Pcategory,Pprice,Pex_price,Pinventory,Snumber

fromProduct,SP

wherePnumber=@PnumberandSP.Pnumber=@Pnumber;

 

8、插入供应商信息

功能:

插入供应商信息目的:

存储插入供应商信息的操作意义:

下次重复同样的动作时,可直接执行存储过程,简化操作步骤createprocedureprocedure_InsertSuppliers--插入供应商信息

@Snumberchar(12),@Snamechar(30),@Saddresschar(30),@Stelnumintas

IFEXISTS(SELECT*FROMSuppliersWHERESnumber=@Snumber)

print'该供应商记录已经存在'

ELSE

insertintoSuppliers(Snumber,Sname,Saddress,Stelnum)

values(@Snumber,@Sname,@Saddress,@Stelnum);

 

9、插入订单信息

功能:

插入订单信息目的:

存储插入订单信息的操作

意义:

下次重复同样的动作时,可直接执行存储过程,简化操作步骤

createprocedureprocedure_InsertOrders--插入订单表

@Onumberchar(12),@Odatedate,,@Enumberchar(12),@Cnumberchar(12)

as

IFEXISTS(SELECT*FROMOrdersWHEREOnumber=@Onumber)

print'该订单记录已经存在'

ELSE

insertintoOrders(Onumber,Odate,Enumber,Cnumber)

values(@Onumber,@Odate,@Enumber,@Cnumber);

 

10、插入产品订购信息

功能:

插入产品订购信息目的:

存储插入产品订购信息的操作

意义:

下次重复同样的动作时,可直接执行存储过程,简化操作步骤

createprocedureprocedure_InsertPO--插入产品订购表

@Pnumberchar(12),@Onumberchar(12),@Quantityint

as

IFEXISTS(SELECT*FROMPOWHEREPnumber=@PnumberandOnumber=@Onumber)--当该订单已经订购

改产品时不予重复订购

print'该产品订购订单记录已经存在'

IFEXISTS(SELECT*FROMProductWHEREPinventory<@Quantity)--

print'该产品库存不足,无法订购'

ELSE

 

当库存量不足时不予订购

insertintoPO(Onumber,Pnumber,Quantity)

values(@Onumber,@Pnumber,@Quantity);

 

11、插入产品信息

功能:

插入产品信息目的:

存储产品的操作

意义:

下次重复同样的动作时,可直接执行存储过程,简化操作步骤

createprocedureprocedure_InsertProduct--插入产品信息

@Pnumberchar(12),@Pnamechar(30),@Pcategory

char(15),@Pprice

int,@Pex_price

real,@Pinventoryreal

as

IFEXISTS(SELECT*FROMProductWHEREPnumber=@Pnumber)--若有相同产品,只更新库存量updateProduct

setPinventory=Pinventory+@Pinventory

ELSE

insertintoProduct(Pnumber,Pname,Pcategory,Pprice,Pex_price,Pinventory)values(@Pnumber,@Pname,@Pcategory,@Pprice,@Pex_price,@Pinventory);

 

12、完整的订单销售流程

功能:

插入订单信息和订购信息以及修改产品库存等信息

目的:

存储从客户下单到订单订购产品的流程的操作

 

意义:

直观展示订单销售流程,使用户能够更简明的执行完整的订单销售流程

createprocedureprocedure_Order--完整的订单销售流程

@Onumberchar(12),@Odatedate,,@Enumberchar(12),@Cnumberchar(12)

@Pnumberchar(12),@Onumberchar(12),@Quantityint

as

IFEXISTS(SELECT*FROMOrdersWHEREOnumber=@O

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

当前位置:首页 > PPT模板 > 节日庆典

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1