一个工厂仓库有如下操作 
毛坯转入
废品
返库
成品入库

开始我是这样建表的
       id   毛坯转入  废品      返库       成品入库   结存  结余 产品名称。
         1    10       2         2                     22    22    变速齿轮
 
后来我发现这样冗余数据太多,
又建立一张这样的表          id     操作类型    数量      产品名称  
           1      毛坯转入     2         变速齿轮
           2       废品        3          中轴
           3       返库        2          变速齿轮
           3.。
然后把结存和结余另存到一张表,做个外键关联第一张表呢虽然把字段全部做死了,不利于用户以后增加新的功能,但是查询出来非常快,一个产品1条数据就搞定了,
第二张表呢,插入速度非常快,但是1个产品得好几条记录才能搞定,而且在前台展现的时候,也比较麻烦,所以我现在有些迷茫,不知道该用那种设计比较好,或者高手还有新的解决方案,谢谢大家了

解决方案 »

  1.   

    一直没有用第二个的原因是,它虽然数据不冗余,但是它查询和展现的时候比第一个麻烦多了,
    第一个插入数据的时候还得分别判断是属于哪种操作,然后在插入对应当字段中,第二个就不用了,直接就可以插入,各有利弊,所以这里请教有经验的大侠们,
      

  2.   

    这个没办法,一般来说你的数据库是用于日常操作的,不是对历史数据进行分析处理的。则应该使用第二种。
      

  3.   

    楼主跟你说这种通常就是第二种你上面你说的 只是类别不同而已。。按第一种 如果增加一个类别 你就要更改表结构,影响比较大