Foxtable(狐表)用户栏目专家坐堂 → 出入库单设计的疑惑


  共有3282人关注过本帖树形打印复制链接

主题:出入库单设计的疑惑

帅哥哟,离线,有人找我吗?
scott518
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:292 积分:2488 威望:0 精华:0 注册:2011/11/4 17:32:00
出入库单设计的疑惑  发帖心情 Post By:2014/6/17 17:05:00 [只看该作者]

请教大家,SQL2005的数据库,进出库单据的结构都差不多一样。

入库类单据有:采购入库,生产入库,外协入库,返工入库,库存调拨(入),其他入库,销售退货,生产退料,外协退料  等十张左右。现在表的设计方案有两种,

一、仅设计一张表,即入库单,在表中增加一列入库类别来区别不同的入库单据。这样的好处是所有的入库数据都只存储在这张表中,需要查询入库明细时从这张表取数即可。缺点是如果只设计一个操作窗口或者每种单据的审批流程不相同时就很难共用;

二、分开设计成十张表,各自设计操作窗口,数据也是保存在不同的表中,这样每种单据都可以设计不同的流程。

 

出库单据也类似,两者加起来近二十张表左右。我的疑问是:

两种方案其实总的数据记录数都是相同的,查询入出库明细时:

方案一:只从两张表中取数(但每张表记录很多) 

方案二:表很多(但每张表记录数较少)用视图union all 合并二十张表在一起,查询视图来取数

 

这两种方式的执行效率相差有多大?如数据量在1千万以上或以下有区别吗?

 

或者还有没有其他更好的方案?

谢谢!

 


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/6/17 17:12:00 [只看该作者]

 方案二更优,组合多个表的数据的速度和直接查询一个表的速度,是一样的。

 回到顶部
帅哥哟,离线,有人找我吗?
scott518
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:292 积分:2488 威望:0 精华:0 注册:2011/11/4 17:32:00
  发帖心情 Post By:2014/6/17 17:21:00 [只看该作者]

谢谢,但方案二要union all 二十张表这个过程不会耗费时间吗?还有用视图或者存储过程两都速度上有没有差别?
[此贴子已经被作者于2014-6-17 17:22:53编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/6/17 17:27:00 [只看该作者]

 用union all 和 select 的效率,是差不多的。

 回到顶部