新足迹

 找回密码
 注册

精华好帖回顾

· [Karen‘s Kitchen Time] 橙香细腻,弹性十足海绵卷。 (2008-8-14) Tiger_Karen · 这样的情人节礼物够Sweet 吧 (2008-2-14) Rena
· 【PowerMao指路】墨尔本,Box Hill 区一点通 (2006-6-2) powermao · ************提车了, 小虎虎 神行者2 ************* (2013-4-2) Bluesnow_t
Advertisement
Advertisement
查看: 1249|回复: 10

DB Design: 该从哪个table读取product cost [复制链接]

发表于 2011-11-18 15:33 |显示全部楼层
此文章由 hornsay 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 hornsay 所有!转贴必须注明作者、出处和本声明,并保持内容完整
最近在update 自己的程序,主要是加 inventory control 这部分。因为已经有Product table了,所以这次加了2个tables: PurchaseOrder and PurchaseDetail.

我想请教一下如何去读取product cost, 就是每次卖掉一个product, 系统应该自动去减掉一个quntity on hand, 同时要get product cost, 但是这product cost在不同的purchase 是不同的,所以这个cost应该读自PurchaseDetail还是应该读之product table?
持不同股见者...
Advertisement
Advertisement

发表于 2011-11-18 15:40 |显示全部楼层
此文章由 azurej 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 azurej 所有!转贴必须注明作者、出处和本声明,并保持内容完整
那就要看你是用什么valuation method了
比如你是用real time APP的 那每次只要把当前系统里的cost减掉cost * 1
如果你是用FIFO的 那你就要找到相对应的PO 找出COST然后减掉
又或者你是用standard cost的 那只要把系统里master data的cost减掉cost * 1就好了

评分

参与人数 1积分 +2 收起 理由
hornsay + 2 感谢分享

查看全部评分

发表于 2011-11-18 15:53 |显示全部楼层
此文章由 stevenbian 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 stevenbian 所有!转贴必须注明作者、出处和本声明,并保持内容完整
没看懂这和数据库设计有啥关系。
product表里应该存放指导价格,purchase detail里应该是实际价格。

发表于 2011-11-18 16:02 |显示全部楼层
此文章由 hornsay 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 hornsay 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 azurej 于 2011-11-18 15:40 发表
那就要看你是用什么valuation method了
比如你是用real time APP的 那每次只要把当前系统里的cost减掉cost * 1
如果你是用FIFO的 那你就要找到相对应的PO 找出COST然后减掉
又或者你是用standard cost的 那只要把系统里master data的cost减掉cost * 1就好了


我是用real time 来计算。

刚才想了一下,FIFO可能在db integrity方面会有一些问题。感觉用average cost比较好,就是每次purchase order completed, 系统应该update product table的quantity on hand, 同时计算product table的average cost. 即 quantity on hand = quantity on hand +new order quantity, cost =(old quantity on hand*cost+new order quantity*new cost)/new quantity on hand.

这样基本上不会有integrety problem, 未来计算方面也比较方便一些。
持不同股见者...

发表于 2011-11-18 16:06 |显示全部楼层
此文章由 hornsay 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 hornsay 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 stevenbian 于 2011-11-18 15:53 发表
没看懂这和数据库设计有啥关系。
product表里应该存放指导价格,purchase detail里应该是实际价格。

如果读purchase detail的实际价格,那purchase detail就必须加一个on hand的column,但这样会出现2个quantity on hand, 一个在product table, 一个在pruchase detail,我想这样design不是很好。
持不同股见者...

发表于 2011-11-18 16:11 |显示全部楼层
此文章由 典 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 典 所有!转贴必须注明作者、出处和本声明,并保持内容完整
不懂你的Cost是什么概念,最好问会记,不同的cost本身有不同的算法,要看你的真实目的是什么,
先进先出?先进后出?
Advertisement
Advertisement

发表于 2011-11-18 16:17 |显示全部楼层
此文章由 hornsay 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 hornsay 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 于 2011-11-18 16:11 发表
不懂你的Cost是什么概念,最好问会记,不同的cost本身有不同的算法,要看你的真实目的是什么,
先进先出?先进后出?

这个cost就是某一个product进货的价格,想通过这个价格知道货卖掉后的margin, 不是用在accounting上面的。只是让用户知道整个这段时间的margin多少,能够了解整个销售的情况。
持不同股见者...

发表于 2011-11-18 16:22 |显示全部楼层
此文章由 azurej 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 azurej 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 hornsay 于 2011-11-18 16:02 发表


我是用real time 来计算。

刚才想了一下,FIFO可能在db integrity方面会有一些问题。感觉用average cost比较好,就是每次purchase order completed, 系统应该update product table的quantity on hand, 同时计算produc ...

理论上是这样 可是你有没有想过万一你PO goods 已经收到系统里面去了 但是Purchase Invoice还没有收到 当你过几天收到的时候发现价格和你的PO有出入而你已经卖掉一部分的货物了 这种情况你要怎么处理呢?
现实生活中我觉得PO COMPLETE不会那么理想
你算APP的时候也要考虑到怎么去adjust那些已经卖掉的货物with incorrect cost

发表于 2011-11-18 16:34 |显示全部楼层

回复 azurej 8# 帖子

此文章由 hornsay 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 hornsay 所有!转贴必须注明作者、出处和本声明,并保持内容完整
嗯,这个有道理。

但这样系统是不是会变得更复杂?我在puchase order里有个status, 只有在status是completed才会去update product table. 所以基本上应该是拿到invoice后才change status.但事后因为某种原因追加invoice, 我这样的design确实无法handle了。

如果有意外,那只能手动去修改product table的average cost了。 

但是FIFO也有麻烦,就是你的产品卖掉后又被客户退回来,那这个产品你不知道是从来源于哪个purchase.
持不同股见者...

发表于 2011-11-18 23:55 |显示全部楼层

回复 hornsay 9# 帖子

此文章由 glen 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 glen 所有!转贴必须注明作者、出处和本声明,并保持内容完整
Moving avg cost seems good for this purpose

发表于 2011-11-19 14:05 |显示全部楼层

回复 glen 10# 帖子

此文章由 hornsay 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 hornsay 所有!转贴必须注明作者、出处和本声明,并保持内容完整
谢谢。

一直被这个issue难倒,迟迟没有下手。昨天一边在做一边在想,是azurej的回复让我有了灵感。我觉得这是一个不错的solution,主要是计算更方便,integrity也很好,而且也human readable。
持不同股见者...
Advertisement
Advertisement

发表回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Advertisement
Advertisement
返回顶部