业务流程:1.这是一个关于布匹销售的软件
2.布匹的单位是“卷",规格为”长度*宽度“
  例:2007-1-1,进货布匹10卷,每卷规格为"200*2",即200米*2米
      2007-1-2,销售布匹长度为10米,宽度2米
      2007-1-3,又销售布匹长度为20米,宽度2米
3。根据以上数据要得到这样库存盘点帐
      2007-1-1,库存剩余布匹数为,规格为200*2的布匹10卷
      2007-1-2, 库存剩余布匹数为,规格为200*2的布匹9卷,规格为190*2的布匹数为1卷,190*2的规格是通过200*2的布匹销售了10米得到的剩余数
      2007-1-3,在2007-1-2这天的库存剩余数上进行选择,具体要出库哪种规格的布匹,如果要出库规格是190*2的布匹,那么2007-1-3这天的库存剩余数为:200*2的布匹9卷,170*2的布匹1卷。
       如果要出库规格是200*2的布匹,那么2007-1-3这天的库存剩余数为:200*2的布匹8卷,190*2的布匹1卷,180*2的布匹1卷4。我想向大家请教这样的业务该怎样设计数据库表结构,才能得出以上的库存剩余数
              

解决方案 »

  1.   

    看你别的需求了,就你现在的需求的话有很多种设计方法啊
    如果你只要得到库存剩余数,那一个表就可以了,甚至不用都可以.
    一般的设计嘛
    一个入库表一个出库表,然后用一个sql语句得到库存剩余数
      

  2.   

    create table 入库表
    (
    id int identity(1,1),
    名称 varchar(10),
    单位 varchar(10),
    长度 int,
    宽度 int,
    规格 varchar(10),
    单价 money,
    数量 int,
    入库日期 datetime
    )
    insert into 入库表 select '布匹','卷',200,2,'200*2',1000,10,'2007-1-1'
    select * from 入库表
    /*
    名称    单位   长度  宽度   规格   单价    数量    入库日期
    布匹     卷    200   2     200*2  1000    10     2007-1-1  
    */
    drop table 入库表这样设计入库表可以吗?但是出库表怎样设计?
      

  3.   

    create table 入库表
    (
    id int identity(1,1),
    名称 varchar(10),
    单位 varchar(10),
    长度 int,
    宽度 int,
    规格 varchar(10),
    单价 money,
    数量 int,
    入库日期 datetime
    )
    insert into 入库表 select '布匹','卷',200,2,'200*2',1000,10,'2007-1-1'
    select * from 入库表
    /*
    名称    单位   长度  宽度   规格   单价    数量    入库日期
    布匹     卷    200   2     200*2  1000    10     2007-1-1  
    */
    create table 出库表
    (
    id int identity(1,1),
    名称 varchar(10),
    单位 varchar(10),
    长度 int,
    宽度 int,
    规格 varchar(10),
    单价 money,
    数量 int,
    出库日期 datetime
    )
    insert into 出库表 select '布匹','卷',10,2,'10*2',100,1,'2007-1-2'
    insert into 出库表 select '布匹','卷',20,2,'20*2',100,1,'2007-1-3'
    select * from 出库表
    /*
    名称    单位   长度  宽度   规格   单价    数量    出库日期
    布匹     卷    10    2     10*2   100      1     2007-1-2  
    布匹     卷    20    2     20*2   100      1     2007-1-3
    */
    /*
    --库存盘点帐:
    --如果是2007-1-1
      名称    单位   长度  宽度   规格     剩余数量    盘库日期
      布匹    卷     200   2    200*2      10        2007-1-1
    --如果是2007-1-2
      名称    单位   长度  宽度   规格     剩余数量    盘库日期
      布匹    卷     200   2    200*2        9       2007-1-2
      布匹    卷     190   2    190*2        1       2007-1-2
    --如果是2007-1-3(分为2种情况)
      1.如果用户出库200*2规格的,则:
      名称    单位   长度  宽度   规格     剩余数量    盘库日期
      布匹    卷     200   2    200*2        8       2007-1-3
      布匹    卷     190   2    190*2        1       2007-1-3
      布匹    卷     180   2    180*2        1       2007-1-3
      2.如果用户出库190*2规格的。则:
      名称    单位   长度  宽度   规格     剩余数量    盘库日期
      布匹    卷     200   2    200*2        9       2007-1-3
      布匹    卷     170   2    170*2        1       2007-1-3
    */
    drop table 入库表
    drop table 出库表