物资管理数据库中有3个关系,物资表 WZ(WZno, WZNAME, WZTYPE,WZNUM),其属性分别表示物资号,物资名,物资类型,物资库存量。供应公司表GYGS(Gno,GNAME,CITY,TEL,LXR),其属性分别表示公司编号,公司名,公司所在城市,公司电话,公司联系人。供应表GY(Gno,WZno,GYnum,GYprice,GYdate,其属性分别表示公司编号,物资号,供应数量,供应单价,供应日期。假设一种物资可由多个供应公司提供,1个供应公司可以提供多种物资,1个公司可以多次供应同一物资。 在做此题前,依托“课堂作业4-表的创建”中创建的物资数据库中,物资表增加1列 物资库存量 WZNUM !!! 创建一个触发器,当供应表增加一条记录时,物资表的相应物资的库存量 增加 供应数量GYnum。
时间: 2023-06-07 18:12:10 浏览: 73
CREATE TRIGGER IncreaseWZnum ON GY
AFTER INSERT
AS
BEGIN
UPDATE WZ
SET WZNUM = WZNUM + inserted.GYnum
FROM WZ
INNER JOIN inserted
ON WZ.WZno = inserted.WZno
END
注意:触发器需要放在创建供应表 GY 后面,否则会出现无法引用 GY 表的错误。
相关问题
物资管理数据库中有3个关系,物资表 WZ(WZno, WZNAME, WZTYPE,WZNUM),其属性分别表示物资号,物资名,物资类型,物资库存量。供应公司表GYGS(Gno,GNAME,CITY,TEL,LXR),其属性分别表示公司编号,公司名,公司所在城市,公司电话,公司联系人。供应表GY(Gno,WZno,GYnum,GYprice,GYdate,其属性分别表示公司编号,物资号,供应数量,供应单价,供应日期。假设一种物资可由多个供应公司提供,1个供应公司可以提供多种物资,1个公司可以多次供应同一物
资。如何设计一个合适的关系模式,并保证数据的完整性和查询的高效性?
针对这个问题,一个合适的关系模式可以如下设计:
- WZ(WZno, WZNAME, WZTYPE):物资表,其中WZno为主键;
- GYGS(Gno,GNAME,CITY,TEL,LXR):供应公司表,其中Gno为主键;
- GY(Gno,WZno,GYdate,GYnum,GYprice):供应表,其中(Gno, WZno, GYdate)为联合主键。
在这个设计中,GY表中的GYnum表示的是某个供应公司在某个日期提供的物资数量,GYprice表示该供应公司对于该物资的供应单价。一个供应公司可以多次其中的GYnum和GYprice的数据随供应的变化而变化。而GYGS表和WZ表和GY表的关系是多对多的,因此采用第三张关系表来进行联系,保证数据的完整性和高效性。
为了保证数据的完整性和查询的高效性,在实现时,可以采取以下策略:
- 在WZ表中,可以通过建立唯一索引来保证物资号(WZno)的唯一性,从而避免数据出现重复。
- 对于GYGS表和GY表,可以建立外键约束,在GY表中的Gno和WZno分别引用GYGS表和WZ表中相应的属性,这样就可以确保GY表中的Gno和WZno只有GYGS表和WZ表中存在的Gno和WZno才会被插入。这样可以避免脏数据的出现。
- 对于GY表中的查询,可以采用联合索引,使得查询条件可以快速地定位到特定的供应公司和物资,从而提高查询效率。
阅读全文