繁体   English   中英

更新表时如何更新相关表?

[英]How to update related tables when we update a table?

我正在创建一个基于医疗清单的C#Windows应用程序。在此应用程序中,我主要有以下三种形式:PurchaseDetail,SalesDetail和StockDetail。

现在,我需要一个功能,如果我在插入或修改PurchaseDetail或SalesDetail中的记录时,还应该修改StockDetail中的数据(例如,如果我在PurchaseDetail中插入一些药品,那么StockDetail中的Quantity也应该被修改并与SalesDetail相同)

PurchaseDetail中的列:Id(主键和自动递增int),BatchNumber,MedicineName,ManufacturingDate,ExpiryDate,Rate,MRP,Tax,Discount,Quantity

SalesDetail中的列:Id(PrimaryKey和自动递增int),BillNumber,CustomerName,BatchNumber,Quantity,Rate,SalesDate

StockDetail中的列:Id(主键和自动递增int),ProductId,ProductName,OpeningStock,ClosingStock,PurchaseQty,DispenseQty,PurchaseReturn,DispenseReturn

请帮我。

编写一个存储过程,封装所需的操作。 然后调用该过程。

我想说触发器将是这里最好的解决方案,因为您基本上需要审计功能。

根据您的业务逻辑,我强烈建议您避免在每次添加或更改其他值时更改数量的行为。
保存所有交易,无论它们是对您的总数量(正数还是负数)进行加或减,然后对所有这些交易进行求和即可得出总计。

通常,我会避免使用触发器-如果没有其他尝试,则很难调试它们。

使用SRO(单一对象责任)的设计原理,我认为最好进行设计,使库存管理占用您班级的部分业务逻辑,这样,确认购买后应明确调用库存管理班级,然后再调用数据库更新该表。

显然,这应该在交易中完成,以确保在键入订单时不会被另一位用户完全耗尽库存。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM