看完视频,有几个点一起讨论一下:
1、最近接触到一些新的知识点,包括:(1)要尽可能减少触发器和存储过程的使用,特别是高并发场景,出入库操作自然是属于高并发操作了,回写更易产生数据丢失;(2)数据库结构设计的类概念,比如先建一个收发表来作为所有出入库操作的类,而销售出库、采购出库、生产入库、POS出库等,相当于收发表类的一个实例,SAP的理念也是如此。而活字格是天生具有这样的特征的,表相当于类,页面相当于实例,有点面向对象的意思。所以,我现在也更倾向于视图的方案。
2、根据业务需求,核心问题之一,是这个类的构造,要考虑的因素特别多,比如库/区/位、仓内调拨、仓店调拨、公司/代理/加盟的多级流转、在途库存、盘点锁定、负库存、收发限制、收付款限制等,所以提前设计好很重要,不知道大家有没什么成熟的方案
3、第二个核心问题是效率问题或者说沉淀数据的处理,因为收发业务的发生频率非常高,小点的公司一年可能都会产生几十万行数据,大点的去到几百万行也有可能。这些历史数据的处理,一定会碰到效率问题。视频中说的,选一个月数据效率不会受影响,不全是这样的,还会受到要筛选的源数据量影响。这个沉淀数据应该如何处理,是定期算出库存为零的就清理到历史收发表里,还是定期截一个时间点之前的进行汇总合并?或者还有其它方案?都是值得讨论一下!
4、另外关于,收表和发表是在一起?还是分开?我更倾向于放一起,既然选择了视图方案,后期一定会大量使用收发表进行视图计算,放在一个表里的效率,一定高过去union或join。 |