订单销售数据库设计

上传人:沈*** 文档编号:43886313 上传时间:2021-12-05 格式:DOC 页数:10 大小:136.50KB
收藏 版权申诉 举报 下载
订单销售数据库设计_第1页
第1页 / 共10页
订单销售数据库设计_第2页
第2页 / 共10页
订单销售数据库设计_第3页
第3页 / 共10页
资源描述:

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

1、五、逻辑设计5.1 ER图供应商供应产品订购订单管理雇员下发客户名称地址联系电话客户编号姓名通信地址电话产品编号供应商编号产品编号产品名称产品类型产品编号订单编号订单编号雇员编号姓名联系电话供应商编号售价出厂价存货量数量日期雇员编号工资客户编号5.2 关系模型供应商(供应商编号,名称,地址,联系电话)产品(产品编号,产品名称,产品类别,售价,出厂价,存货量)供应(供应商编号,产品编号)订购(产品编号,订单编号,数量)客户(客户编号,姓名,通信地址,电话)订单(订单编号,日期,客户编号,雇员编号)雇员(雇员编号,姓名,联系电话,工资)注:有下划线的表示该属性为主码。六、物理设计6.1 表汇总表名

2、功能说明表Suppliers供应商表,存储供应商的编号等信息表Product产品表,存储产品的编号、数量等信息表SP供应商产品供应表,存储供应商所供应的产品对应信息表Orders订单表,存储订单的编号、日期等信息表PO产品订购表,存储产品订购的对应信息表Employee雇员表,存储雇员的编号等信息表Customer客户表,存储客户的编号等信息6.2 表1: Suppliers表(供应商表)表名Suppliers(供应商表)数据库用户Sa主键Snumber其他排序字段无索引字段无序号字段名称数据类型(精度范围)允许为空Y/N唯一Y/N区别度默认值约束条件/说明1Snumberchar(12)NY

3、高无主键/供应商号2Snamechar(30)NN中无供应商名称3Saddresschar(30)YN中无供应商地址4StelnumintYN高无供应商电话sql脚本-建立供应商表create table Suppliers -供应商表(Snumber char(12) primary key,-供应商编号,主码 Sname char(30) not null,-姓名 Saddress char(30), -地址 Stelnum int -电话);6.3 表2: Product表(产品表)表名Product(产品表)数据库用户sa主键Pnumber其他排序字段无索引字段无序号字段名称数据类型(

4、精度范围)允许为空Y/N唯一Y/N区别度默认值约束条件/说明1Pnumberchar(12)NY高无主键/产品编号2Pnamechar(30)NY高无产品名称3Pcategorychar(15)YN低无产品类别4PpriceintYN中无产品售价5Pex_pricerealYN中无产品出厂价6PinventoryrealYN中无产品库存量sql脚本-建立产品表create table Product -产品表(Pnumber char(12) primary key, -产品编号,主码 Pname char(30) not null, -产品名称 Pcategory char(15), -产品

5、类别- Pprice int, -售价- Pex_price real, -出厂价- Pinventory real -存货量-);6.4 表3: SP表(供应商产品供应表)表名SP(供应商产品供应表)数据库用户sa主键Snumber,Pnumber其他排序字段无索引字段无序号字段名称数据类型(精度范围)允许为空Y/N唯一Y/N区别度默认值约束条件/说明1Snumberchar(12)NY高无主键/供应商号2Pnumberchar(12)NY高无主键/产品编号sql脚本-建立供应商产品供应表create table SP-供应商供应产品表-(Snumber char(12),-供应商编号,外码

6、 Pnumber char(12),-产品编号,外码 primary key(Snumber,Pnumber),-联合主码 foreign key (Pnumber) references Product(Pnumber) on delete cascade on update cascade, foreign key (Snumber) references Suppliers(Snumber) on delete cascade on update cascade);6.5 表4: Orders表(订单表)表名Orders(订单表)数据库用户sa主键Onumber其他排序字段无索引字段无序

7、号字段名称数据类型(精度范围)允许为空Y/N唯一Y/N区别度默认值约束条件/说明1Onumberchar(12)NY高无主键/订单号2OdatedateNN低无订单日期3Enumberchar(12)YN中无雇员号4Cnumberchar(12)NN高无客户号sql脚本-建立订单表create table Orders-订单表(Onumber char(12)primary key,-编号,主码 Odate date,-日期 Enumber char(12),-设置雇员号,外码 Cnumber char(12),-设置客户号,外码 foreign key (Cnumber) reference

8、s Customer(Cnumber) on delete cascade on update cascade, foreign key (Enumber) references Employee(Enumber) on delete cascade on update cascade);6.6 表5: PO表(产品订购表)表名PO(产品订购表)数据库用户sa主键Pnumber,Onumber其他排序字段无索引字段无序号字段名称数据类型(精度范围)允许为空Y/N唯一Y/N区别度默认值约束条件/说明1Pnumberchar(12)NY高无主键/产品号2Onumberchar(12)NY高无主键/

9、订单号3QuantityintNN低无订购产品数量sql脚本-建立产品订购表create table PO-产品订购表(Pnumber char(12),-产品编号 Onumber char(12),-订单编号 Quantity int,-产品数量 primary key(Pnumber,Onumber),-联合主码 foreign key (Pnumber) references Product(Pnumber)-外码 on delete cascade on update cascade, foreign key (Onumber) references Orders(Onumber)-外

10、码 on delete cascade on update cascade); 6.7 表6: Employee表(雇员表)表名Employee(雇员表)数据库用户sa主键Enumber其他排序字段无索引字段无序号字段名称数据类型(精度范围)允许为空Y/N唯一Y/N区别度默认值约束条件/说明1Enumberchar(12)NY高无主键/雇员号2Enamechar(10)NN中无雇员名称3EtelnumintNY高无雇员电话4EwagesrealNN低无雇员薪资sql脚本-建立雇员表create table Employee-雇员表(Enumber char(12) primary key,-编

11、号 Ename char(10),-名字 Etelnum int,-电话 Ewages real-工资);6.8 表7: Customer表(客户表)表名Customer(客户表)数据库用户sa主键Cnumber其他排序字段无索引字段无序号字段名称数据类型(精度范围)允许为空Y/N唯一Y/N区别度默认值约束条件/说明1Cnumberchar(12)NY高无主键/客户表2Cnamechar(10)NN中无客户名称3Caddresschar(30)YN中无客户地址4CtelnumintYY高无客户电话sql脚本-建立客户表create table Customer-客户表(Cnumber char

12、(12) primary key,-编号 Cname char(10),-姓名 Caddress char(30),-地址 Ctelnum int-电话);6.9 视图的设计1、建立一张雇员信息的视图目的:屏蔽雇员的工资信息。功能:能够向管理员提供简明,直接的雇员信息展示。意义:有利于数据库安全的维护,防止任意修改数据库中的雇员信息。create view view_Employee-建立Employee视图,屏蔽工资属性asselect Enumber,Ename,Etelnumfrom Employeewith check option;2、建立一张产品信息的视图目的:屏蔽产品的出厂价信息

13、。功能:能够向管理员提供简明,直接的产品信息展示。意义:有利于数据库安全的维护,防止任意修改数据库中的产品信息。create view view_Producte-建立Product视图,屏蔽出厂价属性asselect Pnumber,Pname,Pcategory,Pprice,Pinventoryfrom view_Productewith check option;6.10 存储过程的设计1、查询订单数量功能:查询订单的数量 目的:存储查询订单数量的操作意义:下次重复同样的动作时,可直接执行存储过程,简化操作步骤create procedure procedure_SearchOrder

14、sNum -查询订单的存储过程As select COUNT(*) 订单总数-查询订单数量 from Orders;2、查询客户的订单信息功能:查询客户的订单信息 目的:存储查询客户的订单信息的操作意义:下次重复同样的动作时,可直接执行存储过程,简化操作步骤create procedure procedure_CustomerOrders-查询某个客户订单信息Cname char(10) as select Onumber,Odate,Enumberfrom Orders,Customerwhere Cname like Cname and Customer.Cnumber like Orde

15、rs.Cnumber;3、查询订单最多的客户信息功能:查询订单最多的客户信息 目的:存储查询订单最多的客户信息的操作意义:下次重复同样的动作时,可直接执行存储过程,简化操作步骤create procedure procedure_SearchMaxOrders-查询订单最多的客户信息asselect Cnumber,Cname,Caddress,Ctelnumfrom Orders,Customerwhere Orders.Cnunmer=Customer.Cnunmergroup by Cnumber having MAX(Cnumber);4、查询客户信息功能:查询客户信息 目的:存储查询

16、客户信息的操作意义:下次重复同样的动作时,可直接执行存储过程,简化操作步骤create procedure procedure_SearchCustomer-查询某客户信息Cname char(10)asselect *from Customerwhere Cname=Cname;5、查询雇员信息功能:查询雇员信息 目的:存储查询雇员信息的操作意义:下次重复同样的动作时,可直接执行存储过程,简化操作步骤create procedure procedure_SearchEmployee-查询某雇员信息Ename char(10)asselect *from Employeewhere Ename

17、=Ename;6、查询某订单对应的产品信息功能:查询某订单对应的产品信息 目的:存储查询某订单对应的产品信息的操作意义:下次重复同样的动作时,可直接执行存储过程,简化操作步骤create procedure procedure_SearchPO-查询某订单的产品信息Onumber char(12)asselect Onumber,Product.Pnumber,Pname,Pcategory,Pprice,Pex_price,Pinventoryfrom Product,POwhere Onumber=Onumber and PO.Pnumber=Product.Pnumber;7、查询产品信

18、息功能:查询产品信息 目的:存储查询产品信息的操作意义:下次重复同样的动作时,可直接执行存储过程,简化操作步骤create procedure procedure_SearchProduct-查询某产品信息Pnumber char(12)asselect Pnumber,Pname,Pcategory,Pprice,Pex_price,Pinventory,Snumberfrom Product,SPwhere Pnumber=Pnumber and SP.Pnumber=Pnumber;8、插入供应商信息功能:插入供应商信息 目的:存储插入供应商信息的操作意义:下次重复同样的动作时,可直接执

19、行存储过程,简化操作步骤create procedure procedure_InsertSuppliers-插入供应商信息Snumber char(12),Sname char(30),Saddress char(30),Stelnum intasIF EXISTS(SELECT * FROM Suppliers WHERE Snumber=Snumber)print该供应商记录已经存在ELSEinsert into Suppliers(Snumber,Sname,Saddress,Stelnum)values(Snumber,Sname,Saddress,Stelnum);9、插入订单信息

20、功能:插入订单信息 目的:存储插入订单信息的操作意义:下次重复同样的动作时,可直接执行存储过程,简化操作步骤create procedure procedure_InsertOrders-插入订单表Onumber char(12),Odate date,Enumber char(12),Cnumber char(12)asIF EXISTS(SELECT * FROM Orders WHERE Onumber=Onumber)print该订单记录已经存在ELSEinsert into Orders(Onumber,Odate,Enumber,Cnumber)values(Onumber,Oda

21、te,Enumber,Cnumber);10、插入产品订购信息功能:插入产品订购信息 目的:存储插入产品订购信息的操作意义:下次重复同样的动作时,可直接执行存储过程,简化操作步骤create procedure procedure_InsertPO-插入产品订购表Pnumber char(12),Onumber char(12),Quantity intasIF EXISTS(SELECT * FROM PO WHERE Pnumber=Pnumber and Onumber=Onumber)-当该订单已经订购改产品时不予重复订购print该产品订购订单记录已经存在IF EXISTS(SELE

22、CT * FROM Product WHERE PinventoryQuantity)-当库存量不足时不予订购print该产品库存不足,无法订购ELSEinsert into PO(Onumber,Pnumber,Quantity)values(Onumber,Pnumber,Quantity);11、插入产品信息功能:插入产品信息 目的:存储产品的操作意义:下次重复同样的动作时,可直接执行存储过程,简化操作步骤create procedure procedure_InsertProduct -插入产品信息Pnumber char(12),Pname char(30),Pcategory ch

23、ar(15),Pprice int,Pex_price real,Pinventory realasIF EXISTS(SELECT * FROM Product WHERE Pnumber=Pnumber)-若有相同产品,只更新库存量update Productset Pinventory=Pinventory+PinventoryELSEinsert into Product(Pnumber,Pname,Pcategory,Pprice,Pex_price,Pinventory)values(Pnumber,Pname,Pcategory,Pprice,Pex_price,Pinvento

24、ry);12、完整的订单销售流程功能:插入订单信息和订购信息以及修改产品库存等信息目的:存储从客户下单到订单订购产品的流程的操作意义:直观展示订单销售流程,使用户能够更简明的执行完整的订单销售流程create procedure procedure_Order -完整的订单销售流程Onumber char(12),Odate date,Enumber char(12),Cnumber char(12)Pnumber char(12),Onumber char(12),Quantity intasIF EXISTS(SELECT * FROM Orders WHERE Onumber=Onumb

25、er)-若有重复订单,则不予下单print该订单记录已存在,不能重复下订单ELSEinsert into Orders(Onumber,Odate,Enumber,Cnumber)values(Onumber,Odate,Enumber,Cnumber);IF EXISTS(SELECT * FROM PO WHERE Pnumber=Pnumber and Onumber=Onumber)-若有重复订购单,则不予订购print该产品订购记录已存在,不能重复订购ELSEIF EXISTS(SELECT * FROM Product WHERE PinventoryQuantity)-若产品库存

26、量不足,则不予订购print产品库存量不足,不能订购ELSEinsert into PO(Onumber,Pnumber,Quantity)values(Onumber,Pnumber,Quantity);6.11 触发器的设计1、建立触发器insert_PO:当插入了一条新的产品订购信息后,则激活该触发器,新的产品库存量等于旧库存量减去产品订购的数量。功能:能够根据数据库中数据的变化来自动进行数据更新操作。 目的:将必备的操作自动化。意义:为数据库用户提供一种简便操作,省去了逐项更改数据的麻烦。create trigger insert_PO-AFTER触发器,当订购产品后,自动减少库存量on po after insertfor each rowas beginupdate Product set new.Pinventory=old.Pinventory-new.Quantity;end;

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!