首页 文章

库存管理:如何处理数据库中已售出的库存单位?

提问于
浏览
6

我卖酒 . 所以我有一个瓶子的清单 . 到目前为止,我有一个“InventoryUnit”模型,它引用了product和line_item .

  • 应该将每个瓶子作为单个InventoryUnit对象存储在我的数据库中吗?

  • 减少库存的最佳做法是什么?如果我卖瓶子,我会销毁一个InventoryUnit吗?或者我应该添加一个可以“出售”或“有库存”的状态列?

  • 我担心性能,Postgres可以处理数十万个InventoryUnit对象吗?

我真的很感激这方面的一些帮助 . 对不起,我是一个前端人员,所以我真的很厌倦数据库建模......

3 回答

  • 7

    一个 . 应该将每个瓶子作为单个InventoryUnit对象存储在我的数据库中吗?

    如果您可以单独出售,那么是,否则通过案例/框跟踪它们 .

    二 . 什么是减少库存的最佳做法?如果我卖瓶子,我会销毁一个InventoryUnit吗?或者我应该添加一个可以“出售”或“有库存”的状态列?

    使用位置和移动的概念(移动应该是它自己的实体) . 例如,OpenERP使用与此类似的“虚拟位置” .

    瓶子坏了?将其从库存位置移至"damaged"位置
    瓶子不见了?将其从库存移至"ether"位置
    发现一个随机的瓶子?将其从"ether"移至库存
    卖了一瓶?将其从库存移至"sold"
    买了一瓶?将其从购买转移到库存

    三 . 我担心性能,Postgres可以处理数十万个InventoryUnit对象吗?

    Postgres可以处理数千亿个对象 . 正常化 . 使用小数据类型 . 使用索引 .

    要记住的其他一些事情:

    • 你可以卖东西,它会被退回,你把它放回库存中

    • 你可以买东西,但是不对,所以你把它寄回给卖家

    • 你可以出售你不拥有的东西(寄售,或者还没有库存)

    • 您可能在库存中有一些目前尚未出售的东西 .

    对于会计库存,您还需要根据免费的FOB状态计算您负责的入库和出库货物的货物 .

    你需要计算原料(DIY酿酒的东西吗?),如果你制作/组装任何东西,以及订购费用等,还在进行中 .

    寄售商品不计入会计库存 .

  • 0

    您应该在最低可替换级别跟踪库存 . 换句话说,当你要从架子上挑选一个单元时,为了获得正确的东西,你需要知道的最具体的信息是什么 .

    在你的例子中,我不能只说,“去拿瓶子”或者你可以带回酒而不是伏特加酒 . 我也不能说,“去拿一瓶伏特加”,因为当我想要Ciroc时你可能会带回Absolut . 最后,我不能说,“去买一瓶Ciroc”,因为当我想要1.5L尺寸时你可能会带回1L尺寸 .

    我可以说“从1.5L Ciroc底壳的前排左侧获得第三瓶”,但这很愚蠢,因为所有1.5L的Ciroc瓶都是一样的 . (味道不在;)) .

    甜蜜点成为您的库存单位(SKU) . 值得庆幸的是,世界上几乎所有公司都已经为您解决了这个问题 . 只需使用条形码下的UPC编号作为SKU .

    基于此,你的模型将是......

    InventoryOnHand
    - id:int
    - product_id:int
    - quantity:int
    
    Product
    - id:int
    - sku:string
    - name:string
    

    然后,当货物进出时,您将增加和减少InventoryOnHand数量 .

  • 3

    虽然不同的型号会根据使用情况产生影响,但是_1674009没有正确的方法 .

    如果您正在跟踪数量较少但信息量较大的库存(例如飞机和零件),您可能需要为每个项目定义一个条目;如果你正在模拟大量相同的产品,几乎没有身份(就像你的情况似乎),我会专注于库存状态 . 这一切都取决于你想要追踪物品生命周期的程度 .

    问问自己“跟踪一箱破解者的实例是否值得,或者我可以跟踪托盘对我现有库存的影响程度?”加油站会为每升燃料创造一个入口吗?

相关问题