>每个瓶子应该作为单个InventoryUnit对象存储在我的数据库中吗?
>减少库存的最佳做法是什么?如果我卖瓶子,我会销毁一个InventoryUnit吗?或者我应该添加一个可以“出售”或“有库存”的状态列?
>我担心性能,Postgres可以处理数十万个InventoryUnit对象吗?
我真的很感激这方面的一些帮助.对不起,我是一个前端人员,所以我真的很厌倦数据库建模……
解决方法
One. should every single bottle be stored as an individual InventoryUnit object in my database?
如果您可以单独出售,那么是,否则通过案例/框跟踪它们.
Two. what’s the best practice to decrease my inventory? if i sell a bottle,do i destroy an InventoryUnit? or should i just add a
status-column that can be “sold” or “in-stock”?
使用位置和移动的概念(移动应该是它自己的实体).例如,OpenERP使用与此类似的“虚拟位置”.
瓶子坏了?将其从库存位置移至“已损坏”位置
瓶子不见了?将其从库存移至“以太”位置
发现一个随机的瓶子?将其从“以太”移至库存
卖了一瓶?将其从库存移至“已售出”
买了一瓶?将其从购买转移到库存
Three. i’m worried for performance,can Postgres handle hundreds of thousands of InventoryUnit objects?
Postgres可以处理数千亿个对象.正常化.使用小数据类型.使用索引.
要记住的其他一些事情:
>你可以卖东西,它会被退回,然后你把它放回库存中
>你可以买东西,但这不对,所以你把它寄回卖家
>你可以出售你不拥有的东西(寄售,或者不在库存中)
>您可能在库存中有一些目前尚未出售的东西.
对于会计库存,您还需要根据免费的FOB状态计算您负责的入库和出库货物的货物.
你需要计算原料(DIY酿酒的东西吗?),如果你制作/组装任何东西,以及订购费用等,还在进行中.
寄售商品不计入会计库存.