每日农产品价格行情管理系统文件管理序列号:[K8UY-K9IO69-O6M243-OL889-F88688]数据库课程设计题目:每日农产品价格行情管理系统专业: 信息管理与信息系统班级:一、系统需求分析随着科学技术的发展,社会进步,计算机和互联网技术的迅速发展,信息的传播速度成倍加快。
怎样才能迅速准确地掌握市场的最新动态、良好的货源和收购商成为了产品的商家和生产商在商场上立于不败之地的重要保证。
农产品这一块也不例外,及时地掌握农产品的每日价格行情成为了农户和农产品批发商的迫切需求。
每日农产品价格行情系统就是建立在这样一个基础上,为农户和农产品批发商建立一个了解农产品市场最新动态以及供求信息的平台。
系统的主要功能1. 录入、修改和查询农产品的供求信息(主要是以各个产品的品种类别,产地来划分的产品供求信息)2. 录入、更新和查询农产品的价格行情信息(上涨或是下跌)3. 给用户赋予权限和信息维护。
二、系统功能结构图功能结构图:三、数据库设计1.系统ER图关系模式:农户:(农户编号,农户名,地区,电话)农产品:(产品编号,产品类别,产品名称,产地)批发商:(批发商编号,批发商店名,地区,电话,联系人)零售商:(零售商编号,零售商店名,地区,电话,联系人)供给表(供给编号,农户编号,产品编号,供给量,供给时间,供给价格)进货表(进货编号,产品编号,批发商编号,进货量,进货时间,进货价格)批发表(批发编号,产品编号,批发商编号,零售商编号,批发量,批发时间,批发价格)四、数据字典1.数据项create table Supplier(SupID varchar(10) not null primary key, SupName varchar(25) not null,SupArea varchar(50) not null,SupStyle int not null,SupPhone varchar(20) not null,SupPW Varchar(16) not null,)农产品信息表(ProductInfo)create table ProductInfo(ProductID varchar(10) not null primary key,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)create table UserInfo(UserID 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)create table Distributer(DistID 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)create table C_Summery(C_No varchar(10) not null primary key,ProductStyle varchar(10) not null,ProductName varchar(50) not null,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、CREATE TRIGGER UserInfo_delete1ON UserInfofor DeleteAS begindelete Distributerfrom Distributer dt,deleted dwhere dt.DistID=erIDENDGO/*在用户表中删除用户的同时将销售商表中对应的信息删除掉*/ 2、CREATE TRIGGER UserInfo_deleteON UserInfofor DeleteAS begindelete Supplierfrom Supplier sp,deleted dwhere sp.SupID=erIDEndGo/*在用户表中删除用户的同时将供应商表中的对应的信息删除掉*/ 3、CREATE TRIGGER UserInfo_insertON UserInfofor insertASdeclare @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=UserAreafrom inserted where UserStyle='001'or UserStyle='002'begininsert into Supplier(SupID,SupName,SupPW,SupPhone,SupStyle,SupArea) values(@UserID,@UserName,@UserPW,@UserPhone,@UserStyle,@UserArea) EndGo/*当在用户表中插入的信息中“用户类型”为“001”或“002”时,在供应商表中插入相同的信息*/4、CREATE TRIGGER UserInfo_insert1ON UserInfofor insertASdeclare @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=UserAreaFrom inserted where UserStyle='003'or UserStyle='004'begininsert intoDistributer(DistID,DistName,DistPW,DistPhone,DistStyle,DistArea)values(@UserID,@UserName,@UserPW,@UserPhone,@UserStyle,@UserArea) EndGo/*当在用户表中插入的信息中“用户类型”为“003”或“004”时,在销售商表中插入相同的信息*/5、CREATE TRIGGER UserInfo_updateON UserInfofor UPDATEASif Update(UserID)BEGINUpdate Supplierset SupID=erIDfrom Supplier sp,deleted d,inserted iwhere sp.SupID=erIDEndGo/*在用户表更新用户信息时将供应商表中相应的信息进行同步更新*/ 6、CREATE TRIGGER UserInfo_update1ON UserInfofor UPDATEASif Update(UserID)BEGINUpdate Distributerset DistID=erIDfrom Distributer dt,deleted d,inserted iwhere dt.DistID=erIDENDGo/*在用户表更新用户信息时将销售商表中相应的信息进行同步更新*/7、CREATE TRIGGER Product_deleteON ProductInfofor DeleteAS begindelete C_Summeryfrom C_Summery cs,deleted dwhere cs.ProductName=d.ProductNameENDGo/*在用户表删除农产品信息时将汇总表中相应的信息进行删除*/8、CREATE TRIGGER Product_updateON ProductInfofor updateAS beginupdate C_Summeryset ProductName=i.ProductNamefrom C_Summery cs,deleted d,inserted iwhere cs.ProductName=d.ProductNameENDGo/*在用户表更新农产品信息时将汇总表中相应的信息进行同步更新*/ 4. 存储过程概述:以下所有的存储过程:插入:表示插入一条新记录(如果记录已经存在,则插入失败)。
修改:表示修改一条记录(如果记录存在则修改,否则不能修改)删除:表示删除一条记录(如果记录存在则删除,否则不能删除在此,我没有考虑到级联关系,感觉删除这个过程用触发器做比较好,因此,删除应由触发器实现。