超市商品销售关系数据库CRM设计与存储过程优化
超市商品销售关系数据库CRM设计与存储过程优化
本文介绍了超市商品销售关系数据库CRM的设计,包括商品库存表、供货商表、销售记录表和会员表四个关系,并提供了一个查询指定会员购买商品信息的存储过程。
关系模式如下所示:
①商品库存表:
Inventory(Commodityno, Commodityname, Price, Num, Address, Supno)
主键:Commodityno
其中:Commodityno, Commodityname, Price, Num, Address, Supno中文含义分别为商品号,商品名,单价,库存数量,产地,供货商号。
②供货商表:
Supplier(Supno, Supname, Address, Email, Telephone, Person)
主键:Supno
其中:Supno, Supname, Address, Email, Telephone, Person中文含义分别为供货商号,供货商名,通信地址,Email,电话,供货商负责人。
③销售记录表:
Sales(Salesorder, Memberno, Commodityno, Salesnum, Price)
主键:Salesorder
其中:Salesorder, Memberno, Commodityno, Salesnum, Price的中文含义分别为销售流水号,会员号,商品号,数量,单价。
销售流水号Salesorder的前8位为销售日期(年、月、日),后4位为当天顺序号。
④会员表:
Member(Memberno, Membername, Sex, Age, Email, Telephone, Class)
主键:Memberno
其中:Memberno, Membername, Sex, Age, Email, Telephone, Class中文含义分别为会员号,会员名,性别,年龄,EMAIL,电话,等级。
创建存储过程sp_pro_info1,用于查询指定会员号的会员名和该会员所购买商品的商品号、商品名、单价、数量、金额、商品的供货商名与电话。
测试代码得到报错,怎么修改源代码?
消息 217,级别 16,状态 1,过程 sp_pro_info1,行 45 [批起始行 46]
超出了存储过程、函数、触发器或视图的最大嵌套层数(最大层数为 32)。
解决方法:
修改源代码,减少存储过程的嵌套层数,或者将存储过程拆分成多个较小的存储过程。可以考虑使用临时表或者表变量来减少嵌套层数。同时,也要检查存储过程内部的语法错误和逻辑错误。
**优化后的存储过程代码示例:**sql-- 创建存储过程CREATE PROCEDURE sp_pro_info1 (@Memberno VARCHAR(20))ASBEGIN -- 创建临时表存储查询结果 CREATE TABLE #MemberInfo ( Memberno VARCHAR(20), Membername VARCHAR(50), Commodityno VARCHAR(20), Commodityname VARCHAR(50), Price DECIMAL(10, 2), Salesnum INT, Amount DECIMAL(10, 2), Supname VARCHAR(50), Telephone VARCHAR(20) );
-- 查询会员信息 INSERT INTO #MemberInfo (Memberno, Membername) SELECT Memberno, Membername FROM Member WHERE Memberno = @Memberno;
-- 查询会员购买的商品信息 INSERT INTO #MemberInfo (Commodityno, Commodityname, Price, Salesnum, Amount, Supname, Telephone) SELECT S.Commodityno, I.Commodityname, S.Price, S.Salesnum, S.Price * S.Salesnum AS Amount, Sup.Supname, Sup.Telephone FROM Sales AS S JOIN Inventory AS I ON S.Commodityno = I.Commodityno JOIN Supplier AS Sup ON I.Supno = Sup.Supno WHERE S.Memberno = @Memberno;
-- 返回查询结果 SELECT * FROM #MemberInfo;
-- 删除临时表 DROP TABLE #MemberInfo;END;
原文地址: https://www.cveoy.top/t/topic/nZ3d 著作权归作者所有。请勿转载和采集!