业务流程: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。我想向大家请教这样的业务该怎样设计数据库表结构,才能得出以上的库存剩余数
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。我想向大家请教这样的业务该怎样设计数据库表结构,才能得出以上的库存剩余数
如果你只要得到库存剩余数,那一个表就可以了,甚至不用都可以.
一般的设计嘛
一个入库表一个出库表,然后用一个sql语句得到库存剩余数
(
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 入库表这样设计入库表可以吗?但是出库表怎样设计?
(
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 出库表