[英]Database Design for Product Inventory Stock (SuperMarket)
在过去的几年中,我制作了简单的商店应用程序,在其中制作了这样的简单产品表:
ID,Name,IDCategory,Size,Qty,buyprice,sellprice
数量字段位于产品表中,在进行交易时,我只需在该表上添加或减去它即可。
现在,在我的新超市应用程序中,我知道我需要设计一个更复杂的表格来跟踪库存商品数量,因为该产品现在具有到期日期,不同的购买价格(也许还有售价)。 这是确保财务报告准确的唯一方法,在此我们可以获取每笔交易的实际利润。
我的新产品表就像
ID,Name,IDCategory,Size,ExpirationDate,SellPrice '(I remove qty and keep sell price to simplified and sell my item at 1 price only )
设计的问题在于,它在数据库和程序设计中也变得越来越复杂,我认为我需要应用FIFO系统,而当我想到编辑事务/返回项目等时,它也变得更加复杂。
我现在可以想象的是要使表像这样:
tblProductQty = BuyInvoiceID,Date,IDProduct,Qty
但是后来我在tblBuyTransactionDetail(*保持我的购买交易的表(如invoiceNo,SupplierID,Date,Total)和(InvoiceNo,IDProduct,Qty,BuyPrice,ExpirationDate)这样的明细表中已经意识到了这一信息)
现在我真的很困惑,我真的需要stockTable吗? 但是,如果不是这样,则意味着我需要在事务查询之间进行加减运算以获得一定数量的一种产品。
你们实际上是如何做到的? 那里所有大型超市的通用设计是什么?
注意:我目前使用access和vbnet
我知道,对于大多数erp系统,以下每个表都有单独的表格;
购买(注意购买不一定是产品)
产品交易(您将需要此来计算fifo股票价值)
销售(通常但并非总是产品)
产品详细信息(描述等)
您提到有效期。 理想情况下,应针对个人购买记录这些。
还要注意,购买和销售通常分为表头表和明细表(发票和发票行)。
两种方法都可以做到这一点,有些使用单独的归一化库存表,有些使用报告时进行计算。 两者都是正确的方法,但是下面是使用单独的“库存表”的利弊,请根据需要使用。
优点:
缺点:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.