Phi*_*etz 6 postgresql database-design ruby-on-rails inventory inventory-management
我卖酒.所以我有一个瓶子的清单.到目前为止,我有一个"InventoryUnit"模型,它引用了product和line_item.
应该将每个瓶子作为单个InventoryUnit对象存储在我的数据库中吗?
什么是减少库存的最佳做法?如果我卖瓶子,我会销毁一个InventoryUnit吗?或者我应该添加一个可以"出售"或"有库存"的状态列?
我担心性能,Postgres可以处理数十万个InventoryUnit对象吗?
我真的很感激这方面的一些帮助.对不起,我是一个前端人员,所以我真的很厌倦数据库建模......
一.应该将每个瓶子作为单个InventoryUnit对象存储在我的数据库中吗?
如果您可以单独出售,那么是,否则通过案例/框跟踪它们.
二.什么是减少库存的最佳做法?如果我卖瓶子,我会销毁一个InventoryUnit吗?或者我应该添加一个可以"出售"或"有库存"的状态列?
使用位置和移动的概念(移动应该是它自己的实体).例如,OpenERP使用与此类似的"虚拟位置".
瓶子坏了?将它从库存位置移到"损坏"位置
瓶子丢失了吗?将它从库存移到"以太"位置
找到一个随机的瓶子?把它从"以太"移到库存
卖了一瓶?把它从库存移到"卖"
买一瓶?将其从购买转移到库存
三.我担心性能,Postgres可以处理数十万个InventoryUnit对象吗?
Postgres可以处理数千亿个对象.正常化.使用小数据类型.使用索引.
要记住的其他一些事情:
对于会计库存,您还需要根据免费的FOB状态计算您负责的入库和出库货物的货物.
你需要计算原料(DIY酿酒的东西吗?),如果你制作/组装任何东西,以及订购费用等,还在进行中.
寄售商品不计入会计库存.
啊,这是一个很难回答的问题。尽管不同的模型会根据使用情况产生不同的后果,但没有正确的方法。
如果您正在跟踪少量但信息高度密集的库存(例如飞机和零件),您可能需要为每个项目定义一个条目;如果您正在对大量几乎没有身份的相同产品进行建模(正如您的情况所示),我会关注库存状态。这完全取决于您想要跟踪项目生命周期的深度。
问问自己“是否值得跟踪一盒饼干的实例,或者我可以跟踪一个托盘对我当前库存的影响有多大吗?” 加油站会为每升燃料创建一个入口吗?