订单销售数据库设计文档格式.docx

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

订单销售数据库设计文档格式.docx

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

订单销售数据库设计文档格式.docx

6.2表[1]:

[Suppliers表](供应商表)

Suppliers(供应商表)

数据库用户

Sa

主键

Snumber

其他排序字段

索引字段

序号

字段名称

数据类型(精度范围)

允许为空Y/N

唯一Y/N

区别度

默认值

约束条件/说明

1

char(12)

N

Y

主键/供应商号

2

Sname

char(30)

供应商名称

3

Saddress

供应商地址

4

Stelnum

int

供应商电话

sql脚本

--建立供应商表

createtableSuppliers--供应商表

(Snumberchar(12)primarykey,--供应商编号,主码

Snamechar(30)notnull,--

Saddresschar(30),--地址

Stelnumint--

);

6.3表[2]:

[Product表](产品表)

Product(产品表)

sa

Pnumber

主键/产品编号

Pname

产品名称

Pcategory

char(15)

产品类别

Pprice

产品售价

5

Pex_price

real

产品出厂价

6

Pinventory

产品库存量

--建立产品表

createtableProduct--产品表

(Pnumberchar(12)primarykey,--产品编号,主码

Pnamechar(30)notnull,--产品名称

Pcategorychar(15),--产品类别--

Ppriceint,--售价--

Pex_pricereal,--出厂价--

Pinventoryreal--存货量--

6.4表[3]:

[SP表](供应商产品供应表)

SP(供应商产品供应表)

Snumber,Pnumber

--建立供应商产品供应表

createtableSP--供应商供应产品表--

(Snumberchar(12),--供应商编号,外码

Pnumberchar(12),--产品编号,外码

primarykey(Snumber,Pnumber),--联合主码

foreignkey(Pnumber)referencesProduct(Pnumber)

ondeletecascade

onupdatecascade,

foreignkey(Snumber)referencesSuppliers(Snumber)

onupdatecascade

6.5表[4]:

[Orders表](订单表)

Orders(订单表)

Onumber

主键/订单号

Odate

date

订单日期

Enumber

雇员号

Cnumber

客户号

--建立订单表

createtableOrders--订单表

(Onumberchar(12)primarykey,--编号,主码

Odatedate,--日期

Enumberchar(12),--设置雇员号,外码

Cnumberchar(12),--设置客户号,外码

foreignkey(Cnumber)referencesCustomer(Cnumber)

foreignkey(Enumber)referencesEmployee(Enumber)

6.6表[5]:

[PO表](产品订购表)

PO(产品订购表)

Pnumber,Onumber

主键/产品号

Quantity

订购产品数量

--建立产品订购表

createtablePO--产品订购表

(Pnumberchar(12),--产品编号

Onumberchar(12),--订单编号

Quantityint,--产品数量

primarykey(Pnumber,Onumber),--联合主码

foreignkey(Pnumber)referencesProduct(Pnumber)--外码

foreignkey(Onumber)referencesOrders(Onumber)--外码

6.7表[6]:

[Employee表](雇员表)

Employee(雇员表)

主键/雇员号

Ename

char(10)

雇员名称

Etelnum

雇员电话

Ewages

雇员薪资

--建立雇员表

createtableEmployee--雇员表

(Enumberchar(12)primarykey,--编号

Enamechar(10),--名字

Etelnumint,--

Ewagesreal--工资

6.8表[7]:

[Customer表](客户表)

Customer(客户表)

主键/客户表

Cname

客户名称

Caddress

客户地址

Ctelnum

客户电话

--建立客户表

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视图,屏蔽出厂价属性

selectPnumber,Pname,Pcategory,Pprice,Pinventory

fromview_Producte

6.10存储过程的设计

1、查询订单数量

查询订单的数量目的:

存储查询订单数量的操作

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

createprocedureprocedure_SearchOrdersNum--查询订单的存储过程

AsselectCOUNT(*)'

订单总数'

--查询订单数量fromOrders;

2、查询客户的订单信息

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

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

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

Cnamechar(10)asselectOnumber,Odate,Enumber

fromOrders,Customer

whereCnamelikeCnameandCustomer.CnumberlikeOrders.Cnumber;

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

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

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

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

selectCnumber,Cname,Caddress,Ctelnum

whereOrders.Cnunmer=Customer.Cnunmer

groupbyCnumberhavingMAX(Cnumber);

4、查询客户信息

查询客户信息目的:

存储查询客户信息的操作

createprocedureprocedure_SearchCustomer--查询某客户信息

Cnamechar(10)

select*

fromCustomer

whereCname=Cname;

5、查询雇员信息

查询雇员信息目的:

存储查询雇员信息的操作

createprocedureprocedure_SearchEmployee--查询某雇员信息

Enamechar(10)

whereEname=Ename;

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

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

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

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

Onumberchar(12)

selectOnumber,Product.Pnumber,Pname,Pcategory,Pprice,Pex_price,Pinventory

fromProduct,PO

whereOnumber=OnumberandPO.Pnumber=Product.Pnumber;

7、查询产品信息

查询产品信息目的:

存储查询产品信息的操作

createprocedureprocedure_SearchProduct--查询某产品信息

Pnumberchar(12)

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

fromProduct,SP

wherePnumber=PnumberandSP.Pnumber=Pnumber;

8、插入供应商信息

插入供应商信息目的:

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

createprocedureprocedure_InsertSuppliers--插入供应商信息

Snumberchar(12),Snamechar(30),Saddresschar(30),Stelnumint

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)

IFEXISTS(SELECT*FROMOrdersWHEREOnumber=Onumber)

该订单记录已经存在'

insertintoOrders(Onumber,Odate,Enumber,Cnumber)

values(Onumber,Odate,Enumber,Cnumber);

10、插入产品订购信息

插入产品订购信息目的:

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

createprocedureprocedure_InsertPO--插入产品订购表

Pnumberchar(12),Onumberchar(12),Quantityint

IFEXISTS(SELECT*FROMPOWHEREPnumber=PnumberandOnumber=Onumber)--当该订单已经订购改产品时不予重复订购

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

IFEXISTS(SELECT*FROMProductWHEREPinventory<

Quantity)--当库存量不足时不予订购

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

insertintoPO(Onumber,Pnumber,Quantity)

values(Onumber,Pnumber,Quantity);

11、插入产品信息

插入产品信息目的:

存储产品的操作

createprocedureprocedure_InsertProduct--插入产品信息

Pnumberchar(12),Pnamechar(30),Pcategorychar(15),Ppriceint,Pex_pricereal,Pinventoryreal

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

updateProduct

setPinventory=Pinventory+Pinventory

insertintoProduct(Pnumber,Pname,Pcategory,Pprice,Pex_price,Pinventory)

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

12、完整的订单销售流程

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

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

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

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

IFEXISTS(SELECT*FROMOrdersWHEREOnumber=Onumber)--若有重复订单,则不予下单

该订单记录已存在,不能重复下订单'

IFEXISTS(SELECT*FROMPOWHEREPnumber=PnumberandOnumber=Onumber)--若有重复订购单,则不予订购

该产品订购记录已存在,不能重复订购'

Quantity)--若产品库存量不足,则不予订购

产品库存量不足,不能订购'

6.11触发器的设计

1、建立触发器insert_PO:

当插入了一条新的产品订购信息后,则激活该触发器,新的产品库存量等于旧库存量减去产品订购的数量。

能够根据数据库中数据的变化来自动进行数据更新操作。

目的:

将必备的操作自动化。

为数据库用户提供一种简便操作,省去了逐项更改数据的麻烦。

createtriggerinsert_PO--AFTER触发器,当订购产品后,自动减少库存量

onpoafterinsert

foreachrow

asbegin

updateProductsetnew.Pinventory=old.Pinventory-new.Quantity;

end;

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

当前位置:首页 > PPT模板 > 国外设计风格

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

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