请教大家,SQL2005的数据库,进出库单据的结构都差不多一样。
入库类单据有:采购入库,生产入库,外协入库,返工入库,库存调拨(入),其他入库,销售退货,生产退料,外协退料 等十张左右。现在表的设计方案有两种,
一、仅设计一张表,即入库单,在表中增加一列入库类别来区别不同的入库单据。这样的好处是所有的入库数据都只存储在这张表中,需要查询入库明细时从这张表取数即可。缺点是如果只设计一个操作窗口或者每种单据的审批流程不相同时就很难共用;
二、分开设计成十张表,各自设计操作窗口,数据也是保存在不同的表中,这样每种单据都可以设计不同的流程。
出库单据也类似,两者加起来近二十张表左右。我的疑问是:
两种方案其实总的数据记录数都是相同的,查询入出库明细时:
方案一:只从两张表中取数(但每张表记录很多)
方案二:表很多(但每张表记录数较少)用视图union all 合并二十张表在一起,查询视图来取数
这两种方式的执行效率相差有多大?如数据量在1千万以上或以下有区别吗?
或者还有没有其他更好的方案?
谢谢!