有个库存表,表应该有的信息是 零件号,零件数量,零件使用位置等主要是这些,
但是零件位置有可能是好几个位置都可以用这个零件,但是数量就这么多,我在表里应该怎么去存这些信息呢举个例子:
partname    qty    position
P1          5      A,B,C           (A,B,C三个位置都可以用这个零件)
P1          3      B,C,D           (B,C,D三个位置都可以用这个零件) 如果要出零件P1, 使用位置是B的,那我库存怎么扣呢,这个库存的表结构怎么去定义呢?我是新手,请高手帮帮忙!急!

解决方案 »

  1.   

    问下你零件的使用位置和库存有关系吗?PS:bs 0分
      

  2.   

    举个例子: 
    partname    qty    position 
    P1          5      A,B,C           (A,B,C三个位置都可以用这个零件) 
    P1          3      B,C,D           (B,C,D三个位置都可以用这个零件)  怎么会有2个P1??
      

  3.   

    零件和位置是联合主键
    partname    position  qty    
    P1          A         2      
    P1          B         3      
    用sum求P1总个数
      

  4.   

    表关系设计的不对。零件使用位置是描述性的属性,应该单独放到一个表中
    建立两个表
    表一partid 主键
    partid  partname qty 
    0001    p1        5
    0002    p2       3表二
    partid  position
    0001     A
    0001     B
    0002     A
    0002     C 
      

  5.   

    9 楼说的没什么问题 数据改成这样你就知道了
    表一partid 主键  
    partid  partname qty   
    0001    p1        5  
    0002    p1        3  表二  
    partid  position  
    0001     A  
    0001     B  
    0001     C  
    0002     B  
    0002     C
    0002     D  
      

  6.   

    所以你举的例子就是有问题啊partname    qty    position 
    P1          5      A,B,C           (A,B,C三个位置都可以用这个零件) 
    P1          3      B,C,D           (B,C,D三个位置都可以用这个零件)  你为什么相同一个P1 都再B,C部门用 那要分开呢??
    你举的例子就有问题啊
      

  7.   

    使用的位置是不一样,但是数量也不一样呀。大家的意思 就是数据库的数量是一个零件在一个位置的数量。零件不唯一,位置不唯一。但是一个零件加上他的位置就是唯一的,这时的数量才正确。现在你存的是总数,不可能知道每个位置的数。没错,如零件p1可用在A,B,C三个位置,但是实际要分配到哪个位置 是没办法预测的,这个就是问题的关键所在,所以说这种情况我没想到好的方法去设计表,有专家能解答一下吗? 
      

  8.   

    partname qty position
    P1 1 A
    P1 22 B
    P2 4 B
    P3 9 A
    P3 12 CSELECT partname,SUM(qty)FROM PT 查库存
    SELECT * FROM PT WHERE partname="P1" 查位置
    UPDATE PT SET qty=20 WHERE partname="P1" AND position="B" 出库(剩余数量自己应该会处理啥)
      

  9.   

    楼上的还没理解真正的含义
    按照你写的
    P1 1 A 
    P1 22 B 
    是不合理的 p1可以用的位置是A或者B,你就不能简单的理解为使用位置A的P1有1个,应该是这23个P1在A,B都可以去使用,这才是正解!所以你想的太简单化了!
    不过还是谢谢你!
      

  10.   

    1NF?2NF?  
    ……
    好像表少了
    零件虽是一样,却因收到得前后不一样,应该对每批零件进行编号区别,这样数据库操作就简单了
      

  11.   

    这样如何?
    入库单据表
    表一 listid 主键   
    listid  partname qty    
    0001    p1        5   
    0002    p1        3   表二   
    partid  position   
    0001     A   
    0001     B   
    0001     C   
    0002     B   
    0002     C 
    0002     D 表一是入库单的表 表二对应每批零件用的部门
    算库存就是入库表的合计