五、逻辑设计
5.1 ER图
5.2 关系模型
供应商(供应商编号,名称,地址,联系电话)
产品(产品编号,产品名称,产品类别,售价,出厂价,存货量) 供应(供应商编号,产品编号)
订购(产品编号,订单编号,数量)
客户(客户编号,姓名,通信地址,电话)
订单(订单编号,日期,客户编号,雇员编号)
雇员(雇员编号,姓名,联系电话,工资)
注:有下划线的表示该属性为主码。
六、物理设计
6.1 表汇总
6.2 表[1]:[ Suppliers表](供应商表)
6.3 表[2]:[ Product表](产品表)
6.4 表[3]:[ SP表](供应商产品供应表)
6.5 表[4]:[ Orders表](订单表)
6.6 表[5]:[ PO表](产品订购表)
6.7 表[6]:[ Employee表](雇员表)
6.8 表[7]:[ Customer表](客户表)
6.9 视图的设计
1、建立一张雇员信息的视图
目的:屏蔽雇员的工资信息。
功能:能够向管理员提供简明,直接的雇员信息展示。
意义:有利于数据库安全的维护,防止任意修改数据库中的雇员信息。create view view_Employee--建立Employee视图,屏蔽工资属性
as
select Enumber,Ename,Etelnum
from Employee
with check option;
2、建立一张产品信息的视图
目的:屏蔽产品的出厂价信息。
功能:能够向管理员提供简明,直接的产品信息展示。
意义:有利于数据库安全的维护,防止任意修改数据库中的产品信息。
create view view_Producte--建立Product视图,屏蔽出厂价属性
as
select Pnumber,Pname,Pcategory,Pprice,Pinventory
from view_Producte
with check option;
6.10 存储过程的设计
1、查询订单数量
功能:查询订单的数量目的:存储查询订单数量的操作
意义:下次重复同样的动作时,可直接执行存储过程,简化操作步骤
create procedure procedure_SearchOrdersNum --查询订单的存储过程
As select COUNT(*) '订单总数'--查询订单数量 from Orders;
2、查询客户的订单信息
功能:查询客户的订单信息目的:存储查询客户的订单信息的操作
意义:下次重复同样的动作时,可直接执行存储过程,简化操作步骤
create procedure procedure_CustomerOrders--查询某个客户订单信息
@Cname char(10) as select Onumber,Odate,Enumber
from Orders,Customer
where Cname like @Cname and https://www.doczj.com/doc/8012877582.html,umber like https://www.doczj.com/doc/8012877582.html,umber;
3、查询订单最多的客户信息
功能:查询订单最多的客户信息目的:存储查询订单最多的客户信息的操作意义:下次重复同样的动作时,可直接执行存储过程,简化操作步骤
create procedure procedure_SearchMaxOrders--查询订单最多的客户信息
as
select Cnumber,Cname,Caddress,Ctelnum
from Orders,Customer
where https://www.doczj.com/doc/8012877582.html,unmer=https://www.doczj.com/doc/8012877582.html,unmer
group by Cnumber having MAX(Cnumber);
4、查询客户信息
功能:查询客户信息目的:存储查询客户信息的操作
意义:下次重复同样的动作时,可直接执行存储过程,简化操作步骤