华人澳洲中文论坛

热图推荐

    DB Design: 该从哪一个table读取product cost

    [复制链接]

    2021-5-18 00:08:36 539 9

    比来在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?

    全部回复9

    高压电 发表于 2021-5-17 23:36:38

    高压电 沙发

    2021-5-17 23:36:38

    那就要看你是用甚么valuation method了
    好比你是用real time APP的 那每次只有把以后零碎里的cost减掉cost * 1
    假如你是用FIFO的 那你就要找到相对于应的PO 找出COST而后减掉
    又或者你是用standard cost的 那只有把零碎里master data的cost减掉cost * 1就行-了
    topsen 发表于 2021-5-17 23:41:14

    topsen 板凳

    2021-5-17 23:41:14

    没看懂这和数据库设计有啥瓜葛。
    product内外应该寄放指点价钱,purchase detail里应该是实际价钱。
    东北虎 发表于 2021-5-17 23:45:58

    东北虎 地板

    2021-5-17 23:45:58



    我是用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, 将来计算方面也对比便利一些。
    vajrahara 发表于 2021-5-17 23:47:57

    vajrahara 5#

    2021-5-17 23:47:57


    假如读purchase detail的实际价钱,那purchase detail就必需加一个on hand的column,但这样会泛起2个quantity on hand, 一个在product table, 一个在pruchase detail,我想这样design不是很好。
    sungxdc 发表于 2021-5-17 23:51:13

    sungxdc 6#

    2021-5-17 23:51:13

    不懂你的Cost是甚么概念,最佳问会记,不同的cost自身有不同的算法,要看你的实在目的是甚么,
    先进先出?先进后出?
    lnn 发表于 2021-5-17 23:52:39

    lnn 7#

    2021-5-17 23:52:39


    这个cost就是某一个product进货的价钱,想经过这个价钱知道货卖掉后的margin, 不是用在accounting下面的。只是让用户知道全部这段时间的margin多少,可以理解全部销售的状况。
    一叶知秋 发表于 2021-5-17 23:56:43

    一叶知秋 8#

    2021-5-17 23:56:43


    实践上是这样 可是你有无想过万一你PO goods 曾经收到零碎外面去了 然而Purchase Invoice尚无收到 当你过几天收到的时分发现价钱和你的PO有出入而你曾经卖掉一部份的货物了 这类状况你要怎么处置呢?
    理想糊口中我感觉PO COMPLETE不会那末现实
    你算APP的时分也要斟酌到怎么去adjust那些曾经卖掉的货物with incorrect cost
    nq1999 发表于 2021-5-18 00:01:19

    nq1999 9#

    2021-5-18 00:01:19

    嗯,这个有情理。

    但这样零碎是否会变得更繁杂?我在puchase order里有个status, 只要在status是completed才会去update product table. 所以根本上应该是拿到invoice后才change status.但预先由于某种缘故追加invoice, 我这样的design的确无奈handle了。

    假如无意外,那只能手动去修正product table的average cost了。 

    然而FIFO也有费事,就是你的产品卖掉后又被客户退回来,那这个产品你不知道是历来源于哪一个purchase.
    天山村夫 发表于 2021-5-18 00:08:36

    天山村夫 10#

    2021-5-18 00:08:36

    谢谢。

    始终被这个issue难倒,迟迟没有下手。昨天一边在做一边在想,是azurej的回复让我有了灵感。我感觉这是一个不错的solution,次要是计算更便利,integrity也很好,并且也human readable。

    发表回复

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

    返回列表 本版积分规则

    :
    论坛元老
    :
    论坛短信
    :
    未填写
    :
    未填写
    :
    未填写

    主题320

    帖子4649

    积分10546

    图文推荐