1、1. 数据项数据结构:2.数据结构:3.数据存储五数据库实现1.数据库表定义每日农产品价格管理系统create database 每日农产品价格管理系统供应商表(Supplier)字段名字段类型长度主键字段值约束对应中文名SupIDvarchar10PNot null供应商编号SupNameVarchar25供应商名称Suparea50供应商地址SupStyleInt供应商类型SupPhone20Not null 联系方式SupPW16供应商密码create table Supplier(SupID varchar(10) not null primary key,SupName varcha
2、r(25) not null,SupArea varchar(50) not null,SupStyle int not null,SupPhone varchar(20) not null,SupPW Varchar(16) not null,)农产品信息表(ProductInfo)ProductID农产品编号ProductStyle农产品类别ProductName产品名称ProductOrigin产地ProductPriceMoney产品价格DistID销售商编号create table ProductInfoProductID varchar(10) not null primary k
3、ey,ProductStyle varchar(10) not null,ProductName varchar(50) not null,ProductOrigin varchar(20) not null,ProductPrice money not null,SupID varchar(10) not null foreign key references Supplier(SupID),DistID varchar(10) not null foreign key references Distributer(DistID),用户表(UserInfo)UserID用户编号UserNam
4、e用户名称UserPW用户密码UserStyle用户类型UserPhoneUserArea用户地址create table UserInfoUserID varchar(10) not null primary key,UserName varchar(25) not null,UserPW varchar(16) not null,UserStyle int not null,UserPhone varchar(20) not null,UserArea varchar(50) not null,销售商表(Distributer)DistName销售商名称Distarea销售商地址DistS
5、tyle销售商类型DistPhoneDistPWNot Null销售商密码create table DistributerDistID varchar(10) not null primary key,DistName varchar(25) not null,Distarea varchar(50) not null,DistStyle int not null,DistPhone varchar(20) not null,DistPW varchar(16) not null,分类汇总表(C_Summery)C_No分类汇总编号商品类型商品名称Higest_Price最高价Lowest_P
6、rice最低价Bulk_Price大宗价Ave_Price平均价create table C_SummeryC_No varchar(10) not null primary key,Higest_Price money not null,Lowest_Price money not null,Bulk_Price money not null,Ave_Price money not null,ProductID varchar(10) not null foreign key references ProductInfo(ProductID),2.数据库关系图3. 触发器的编写1、CREAT
7、E TRIGGER UserInfo_delete1 ON UserInfo for DeleteAS begin delete Distributer from Distributer dt,deleted d where dt.DistID=d.UserIDEND GO/*在用户表中删除用户的同时将销售商表中对应的信息删除掉*/2、CREATE TRIGGER UserInfo_delete delete Supplier from Supplier sp,deleted d where sp.SupID=d.UserIDEndGo/*在用户表中删除用户的同时将供应商表中的对应的信息删除掉
8、*/3、CREATE TRIGGER UserInfo_insertfor insertAS declare UserID varchar(10), UserName Varchar(25), UserPW Varchar(16), UserStyle Int, UserPhone Varchar(20), UserArea Varchar(50) select UserID=UserID, UserName=UserName, UserPW=UserPW, UserStyle=UserStyle, UserPhone=UserPhone, UserArea=UserArea from ins
9、erted where UserStyle=001or UserStyle=002begin insert into Supplier(SupID,SupName,SupPW,SupPhone,SupStyle,SupArea) values(UserID,UserName,UserPW,UserPhone,UserStyle,UserArea)/*当在用户表中插入的信息中“用户类型”为“001”或“002”时,在供应商表中插入相同的信息*/4、CREATE TRIGGER UserInfo_insert1 From inserted where UserStyle=003004 insert
10、 into Distributer(DistID,DistName,DistPW,DistPhone,DistStyle,DistArea)/*当在用户表中插入的信息中“用户类型”为“003”或“004”时,在销售商表中插入相同的信息*/5、CREATE TRIGGER UserInfo_update ON UserInfofor UPDATEif Update(UserID) BEGIN Update Supplier set SupID=i.UserID from Supplier sp,deleted d,inserted i/*在用户表更新用户信息时将供应商表中相应的信息进行同步更新*
11、/6、CREATE TRIGGER UserInfo_update1 Update Distributer set DistID=i.UserID from Distributer dt,deleted d,inserted i where dt.DistID=i.UserID/*在用户表更新用户信息时将销售商表中相应的信息进行同步更新*/7、CREATE TRIGGER Product_delete ON ProductInfo delete C_Summery from C_Summery cs,deleted d where cs.ProductName=d.ProductName/*在
12、用户表删除农产品信息时将汇总表中相应的信息进行删除*/8、CREATE TRIGGER Product_update ON ProductInfofor update update C_Summery set ProductName=i.ProductName from C_Summery cs,deleted d,inserted i/*在用户表更新农产品信息时将汇总表中相应的信息进行同步更新*/4. 存储过程概述:以下所有的存储过程:插入:表示插入一条新记录(如果记录已经存在,则插入失败)。修改:表示修改一条记录(如果记录存在则修改,否则不能修改)删除:表示删除一条记录(如果记录存在则删除
13、,否则不能删除在此,我没有考虑到级联关系,感觉删除这个过程用触发器做比较好,因此,删除应由触发器实现。)。查询:表示查询记录(根据查询条件,显示相应的查询结果)供应商表的存储过程:1插入 (如果该记录号已经存在,则不能再插入)If exists(select name from sysobjects where name =add_SupplierDrop procedure add_Suppliercreate procedure add_SupplierSupID varchar(10),SupName varchar(25),Suparea varchar(50),SupStyle in
14、t,SupPhone varchar(20),SupPW varchar(16)AsBegin transactionInsert into Supplier values (SupID,SupName,Suparea,SupStyle,SupPhone,SupPW)If(error!=0)BeginRollback transactionElse Commit transaction测试执行上述存储过程Use 每日农产品价格管理Exec add_Supplier SupID=5,SupName=2,Suparea=3,SupStyle=12,SupPhone=4 ,SupPW=1232修改(
15、根据记录号进行修改,如果记录号不存在则不能修改。修改时,每个字段都不能为空,不然修改不了)edit_SupplierDrop procedure edit_Supplier ;Create procedure edit_SupplierUpdate Supplier set SupName=SupName, Suparea=Suparea, SupStyle=SupStyle, SupPhone =SupPhone,SupPW=SupPW where SupID=SupID ;调用修改存储过程:use 每日农产品价格管理Exec edit_Supplier SupID=aa,SupStyle=
16、10,SupPhone=123654,SupPW=1113.删除(我只是做了个简单的对单个表的记录进行删除)del_SupplierDrop procedure del_Supplier ;Create procedure del_SupplierSupID varchar(10)Delete from Supplier where SupID=SupID If(error!调用删除存储过程:Exec del_Supplier SupID=4. 查询 (根据查询条件,显示结果。条件可以是多个字段的)select_SupplierDrop procedure select_Supplier go
17、Create procedure select_SupplierDeclare where varchar(100)Declare sql varchar(150)SET where=ERROR=0If(SupIDset where=where+ and +SupID=+SupIDif(SupNameSupName=+SupNameif(SupareaSuparea=+Supareaif(SupStyleSupStyle=+CONVERT(VARCHAR(10),SupStyle)if(SupPhoneSupPhone=+SupPhoneif(SupPWSupPW=+SupPWset sql=
18、Select * from Supplier where +wherePRINT +sqlENDbegin transactionexec (sql) If(error0)调用查询存储过程:Exec select_Supplier SupID=,SupStyle=12, SupPhone=(表示具体值。也可以为空,表示该字段没有要求)农产品信息表的存储过程(ProductInfo)1插入(如果该记录号已经存在,则不能再插入)add_ProductInfoDrop procedure add_ProductInfo ;Create procedure add_ProductInfoProductID varchar(10),ProductStyle varchar(10),ProductName varchar(50),ProductOrigin varchar(20),ProductPrice Money,DistID varchar(10)Insert into ProductInfo values (ProductID, ProductStyle, ProductName, ProductOrigin, ProductPrice,SupID,DistID)Rollba
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1