这个需求的数据库要如何设计

cnjack 2009-03-23 04:41:01
現有一個材料基本單價明細,如下:
_________________________________________________________________________
名称 36” 44” 54” 60” 单位 备注(加工方法)
-------------------------------------------------------------------------
_________________________________________________________________________
PE纸 0.85 0.9 1.0 1.2 码 代料
-------------------------------------------------------------------------
斜纹布 3.5 4.0 4.5 5.0 码 代料
-------------------------------------------------------------------------
布+泡棉 0.5 0.6 0.7 0.8 码 代工
-------------------------------------------------------------------------
布+泡棉+T/C 0.8 1.0 1.2 1.5 码 代工
-------------------------------------------------------------------------
上糊 0.7 0.74 0.8 0.9 码 代工(加工方法)
-------------------------------------------------------------------------
上强力胶 0.95 1.0 1.05 1.1 码 代工(加工方法)
_________________________________________________________________________

说明:
1. 代工:指材料是客户的,我们帮他们做贴合。为默认加工方法,一般是不写
例如:斜纹布+PE纸(“斜纹布”和“PE纸”是客户的材料),则是要将斜纹布和PE纸上糊,两种材料贴在一起,此加工方法称为“代工”。
2. 代料:指材料是我们的,我们还要帮他们做贴合。
例如:A、斜纹布+PE纸(斜纹布”和“PE纸”是我们的材料),则是要将斜纹布和PE纸上糊,两种材料贴在一起,此加工方法称为“全代料”
B、斜纹布+PE纸(“斜纹布”和“PE纸”中,“PE纸”是我们的材料,“斜纹布”为客户来料),则是要将斜纹布和PE纸上糊,两种材料贴在一起,此加工方法要写清楚是哪种材料代料,即为:“PE纸”代料

我們根据客户的加工单,产生的生产派工单,生管根據現場生產情況,再開送貨單,明细如下(生产派工单和送貨單的區別:生產派工單沒有單價欄):
_________________________________________________________________________________________________
品名规格 单位 单价 数量 备注
-------------------------------------------------------------------------------------------------
斜纹布+PE纸 44” 码 0.74 20
-------------------------------------------------------------------------------------------------
斜纹布+PE纸 44” 码 0.74+0.9 30 PE纸代料
-------------------------------------------------------------------------------------------------
斜纹布+PP纸 44” 码 0.74+0.9 30 PP纸代料(PP纸会采用PE纸的单价)
-------------------------------------------------------------------------------------------------
斜纹布+PE纸 44” 码 4.0+0.74+0.9 30 全代料
-------------------------------------------------------------------------------------------------
白WAVE网布+K324+20G T/C 60” 码 1.5 50
_________________________________________________________________________________________________

說明:單價是在開送貨單(如果客戶需要)時,和其它時間由專業人員手工確定的.每个月都有可能会修改单价。

问题:这个数据库要如何设计?修改基本单价后,如何修改送貨单中的单价?

...全文
240 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
play7788 2009-04-01
  • 打赏
  • 举报
回复
是这意思。
cnjack 2009-03-30
  • 打赏
  • 举报
回复
play7788:再次请教一下:
编号 收费项目 名称 规格 单位 价格
1 材料费 PE纸 36'' 码 0.85
2 材料费 PE纸 44'' 码 0.9
3 材料费 斜纹布 36'' 码 3.5
4 材料费 斜纹布 44'' 码 4
5 加工费 把PE纸和斜纹布糊一起 36'' 码 0.6
6 加工费 把PE纸和斜纹布糊一起 44'' 码 0.74


再建一张价格配置表B:

编号 加工配置 A表编号
1 斜纹布+PE纸44''(代工) 6
2 斜纹布+PE纸44''(PE纸代料) 2
3 斜纹布+PE纸44''(PE纸代料) 6
4 斜纹布+PE纸44''(全材料) 2
5 斜纹布+PE纸44''(全材料) 4
6 斜纹布+PE纸44''(全材料) 6

关于:"斜纹布+PE纸44''(全材料)"这个加工配置是由两种材料及一个加工费组成的,在表B中则应有三笔记录,也就是A表中<材料费/PE纸/44">、<材料费/斜纹布/44">和<加工费/把PE纸和斜纹布糊一起/44">,对应A表编号2/4/6对吗?
那这样,"斜纹布+PE纸44''(全材料)"的单价是通过以下这条语句获得,对吗?
SELECT @配置单价=SUM(A.价格) FROM B INNER JOIN A ON B.A表编号=A.编号 WHERE B.加工配置='用户选择的加工配置' GROUP BY B.加工配置
PAPALIAN 2009-03-29
  • 打赏
  • 举报
回复
很有意思得一个案例,我刚好也在做类型得案例,学习学习~
PAPALIAN 2009-03-29
  • 打赏
  • 举报
回复
很有意思得一个案例,我刚好也在做类型得案例,学习学习~
play7788 2009-03-29
  • 打赏
  • 举报
回复
A,B写反了。你理解就行了。
cnjack 2009-03-28
  • 打赏
  • 举报
回复
play7788:
1.我上面列出来的,都是实际使用中用到的单据,并不是我设计的数据库。
2.你還別說,我還真有地方沒有看清楚:
SELECT @配置单价=SUM(B.价格) FROM B INNER JOIN A ON B.A表编号=A.编号 WHERE A.加工配置='用户选择的加工配置' GROUP BY A.加工配置
这条语句中:
1.A和B是不是掉过来了,是否应该是如下所写?
SELECT @配置单价=SUM(A.价格) FROM B INNER JOIN A ON B.A表编号=A.编号 WHERE B.加工配置='用户选择的加工配置' GROUP BY B.加工配置
2.B表中每一个加工配置,在A表中都有唯一的A表编号,那么,你这里的分组汇总是不是不需要了?
w375893296 2009-03-26
  • 打赏
  • 举报
回复
看看,,

软件开发交流群 58773512 欢迎加入!!!!!
cnjack 2009-03-26
  • 打赏
  • 举报
回复
希望各位多多參與,給點意見
play7788 2009-03-26
  • 打赏
  • 举报
回复
唉,看了10楼的回复有点无柰,楼主你如果连三范式还有主子表,内外联接都不明白的话,我很难跟你说明白的。
play7788 2009-03-26
  • 打赏
  • 举报
回复
老大,你才给100分就希望我帮你设计完整个系统么?

你的需求我花了很长时间才看明白,其它人都没明白。

我只是给你提供一种思路。一开始的两张表不够,而且基本单价表设计有问题。

一定要把“加工费”“材料费”分开,然后做一张“配置表”,“配置表”里其实就是把一“加工费”和“材料费”整合到一起。

“配置表”里存的是基本单价表相关字段的编号,那些数据不是价格!!!而是第一张表的编号。所以你10楼的问题不存在。

无论你单价表怎么改,通过后面的查询语句就可以把相关配置的价格取出来。

你还是仔细看一下我的回贴,我想我已经说得很清楚了。你把那个SELECT语句看明白就行了。
honkerhero 2009-03-25
  • 打赏
  • 举报
回复
为单价单独建个表呗
zhoulehua 2009-03-25
  • 打赏
  • 举报
回复
不懂,呵。
cnjack 2009-03-25
  • 打赏
  • 举报
回复
我现在详细的说明一下生产流程:
1.客户确认报价单─>2.收到客户订单(生管)─>3.产生派工单(生管)─>4.车间返回派工单完成明细(包装)─>5.确认当天装车明细(生管) ─>6.送货员返回送货明细(送货员) ─>7.根据送货明细产生送货单─>8.客户根据实际签收材料签送货单(有可能会有退货需要返工)─>9.生管确认送货单数量─>10.财务为无单价加工材料确认单价─>11.根据客户签收的送货单产生月结单( 财务)。

系统需要处理的功能是:
1. 客户资料
2. 单价资料
3. 开派工单:不用管单价
4. 打印派工单:
5. 开出货单:如果客户需要,需要写明单价
6. 打印出货单:
7. 单价修改:
8. 产生月结单:A.为没有单价的加工材料设置单价;B.产生月结单


报价单明细如下:
____________________________________________________________________________________________________________________
名称 36” 44” 54” 60” 单位 备注(加工方法)
____________________________________________________________________________________________________________________
PE纸 0.85 0.9 1.0 1.2 码 代料
--------------------------------------------------------------------------------------------------------------------
斜纹布 3.5 4.0 4.5 5.0 码 代料
--------------------------------------------------------------------------------------------------------------------
布+泡棉 0.5 0.6 0.7 0.8 码 代工
--------------------------------------------------------------------------------------------------------------------
布+泡棉+T/C 0.8 1.0 1.2 1.5 码 代工
--------------------------------------------------------------------------------------------------------------------
上糊 0.7 0.74 0.8 0.9 码 代工(加工方法)
--------------------------------------------------------------------------------------------------------------------
上强力胶 0.95 1.0 1.05 1.1 码 代工(加工方法)
____________________________________________________________________________________________________________________

说明:
1. 代工:指材料是客户的,我们帮他们做贴合。为默认加工方法,一般是不写
例如:斜纹布+PE纸(“斜纹布”和“PE纸”是客户的材料),则是要将斜纹布和PE纸上糊,两种材料贴在一起,此加工方法称为“代工”。
2. 代料:指材料是我们的,我们还要帮他们做贴合。
例如:A、斜纹布+PE纸(斜纹布”和“PE纸”是我们的材料),则是要将斜纹布和PE纸上糊,两种材料贴在一起,此加工方法称为“全代料”
B、斜纹布+PE纸(“斜纹布”和“PE纸”中,“PE纸”是我们的材料,“斜纹布”为客户来料),则是要将斜纹布和PE纸上糊,两种材料贴在一起,此加工方法要写清楚是哪种材料代料,即为:“PE纸”代料

送货单明细如下(派工单和送货单的区别:派工单没有单价栏):
____________________________________________________________________________________________________________________________________
品名规格 单位 单价 数量 备注
____________________________________________________________________________________________________________________________________
斜纹布+PE纸 44” 码 0.74 20
------------------------------------------------------------------------------------------------------------------------------------
斜纹布+PE纸 44” 码 0.74+0.9 30 PE纸代料
------------------------------------------------------------------------------------------------------------------------------------
斜纹布+PP纸 44” 码 0.74+0.9 30 PP纸代料(PP纸会采用PE纸的单价)
------------------------------------------------------------------------------------------------------------------------------------
斜纹布+PE纸 44” 码 4.0+0.74+0.9 30 全代料
------------------------------------------------------------------------------------------------------------------------------------
白WAVE网布+K324+20G T/C 60” 码 1.5 50
____________________________________________________________________________________________________________________________________

说明:
1、备注为空为默认加工方法“代工”
2、“品名规格”会由超过一种以上的材料组成;
3、“品名规格”中的材料不一定是在单价表中的,因为是由专业人员来确定这个单价的。
例如:PP纸代料(PP纸会采用PE纸的单价)


问题:如何设计“品名规格”资料的保存方法?因为它是由几种材料组成,单价也是由这几种材料+加工方法组成,这个牵涉到单价更新的问题。
cnjack 2009-03-25
  • 打赏
  • 举报
回复
谢谢楼上的朋友,特别是play7788,但是有一个问题没有谈到,特别是单价修改的问题,因为:
1 斜纹布+PE纸44''(代工) =>6 加工费 把PE纸和斜纹布糊一起 44'' 码 0.74
中,当"斜纹布"有改单价,那么相应的加工材料中包含“斜纹布”的单价,要如何修改单价?

以下为我整理的系统流程及需求说明,以及遇到的点题:
play7788 2009-03-25
  • 打赏
  • 举报
回复
我明白楼主的意思。

首先,第一张价目表设计的就不够好,没有把“材料”钱和“代工”钱抽象出来,所谓没有抽象出来,就是没有把“收费项目”字段设计好,仅用将各种收费规则笼统的写入备注字段,以至于后面做“配置”单的时候,不知道如何取数据,并且求价格。

另外楼主说的什么[生产派工单]和[送货单],其实都是一张表,[生产派工单]只不过是[送货单]去掉了价格字段,所以可以无视。我们的目标就是做出[送货单]

基本价格表违反了三范式的法则,应该重新设计成如下表A:

编号 收费项目 名称 规格 单位 价格
1 材料费 PE纸 36'' 码 0.85
2 材料费 PE纸 44'' 码 0.9
3 材料费 斜纹布 36'' 码 3.5
4 材料费 斜纹布 44'' 码 4
5 加工费 把PE纸和斜纹布糊一起 36'' 码 0.6
6 加工费 把PE纸和斜纹布糊一起 44'' 码 0.74


再建一张价格配置表B:

编号 加工配置 A表编号
1 斜纹布+PE纸44''(代工) 6
2 斜纹布+PE纸44''(PE纸代料) 2
3 斜纹布+PE纸44''(PE纸代料) 6
4 斜纹布+PE纸44''(全材料) 2
5 斜纹布+PE纸44''(全材料) 4
6 斜纹布+PE纸44''(全材料) 6

由于增加了表B,就需要设计一个配置表B的输入界面:

----------------------------------------------------------------------
加工配置名称:(用户输入)

收费项目:(把A表收费项目字段以下拉列表形式让用户选择) 名称:(下拉表) 规格:(下拉表)
收费项目:(把A表收费项目字段以下拉列表形式让用户选择) 名称:(下拉表) 规格:(下拉表)
收费项目:(把A表收费项目字段以下拉列表形式让用户选择) 名称:(下拉表) 规格:(下拉表)
收费项目:(把A表收费项目字段以下拉列表形式让用户选择) 名称:(下拉表) 规格:(下拉表)

[确定按钮]
-----------------------------------------------------------------------
按下确定后,将界面数据保存到数据库:

SELECT @ID=A.编号 FROM A WHERE 收费项目='用户选择的收费项目' AND 名称='用户选择的名称' AND 规格='用户选择的规格'
INSERT INTO B [加工配置],[A表编号] VALUES '用户输入的加工配置名称',@ID

(上面界面有四行,就从界面取四组数据,并做四次这样的插入操作)

例如:
------------------------------------------------------------------------
加工配置名称:斜纹布+PE纸44''(全材料)

收费项目:材料费 名称:PE纸 规格:44''
收费项目:材料费 名称:斜纹布 规格:44''
收费项目:加工费 名称:把PE纸和斜纹布糊一起 规格:44''
收费项目:不选 名称:不选 规格:不选

[确定按钮]
------------------------------------------------------------------------

===================================这里算告一段落。

然后是送货单的设计,

---------------------------------------------------------------------------
加工配置:(把B表加工配置字段以下拉列表形式让用户选择) 单价:(后台计算) 数量:(用户输入) 合计:(自动计算)

[确定按钮]
---------------------------------------------------------------------------

加工配置就是前面表B里存的一长字串,包括了所有的名字,方式,规格,单位,备注等等。所以送货单录入界面就没有了这些选项。

而这里的单价如何获取呢,首先用户得在界面上选择加工配置,选择好以后,传到以下脚本:

SELECT @配置单价=SUM(B.价格) FROM B INNER JOIN A ON B.A表编号=A.编号 WHERE A.加工配置='用户选择的加工配置' GROUP BY A.加工配置

最后@配置单价变量里存的就是从表A里取到所有明细单价之和了。这样不管A表单价怎么变,配置的价格也会随之改变。

最后说明:
1.送货单的界面你就自己设计了。至于怎么生成[生产派工单]那就太简单了,不细说。
2.界面上选择的文字可以是字段的内容,后台传递的可以是字段的编号。


指间的风 2009-03-24
  • 打赏
  • 举报
回复
你的需求我看大概看了一下,
具体的业务有很多没看懂,
大概理解就是
材料 与 客户的关系。

关于你的问题

說明:單價是在開送貨單(如果客戶需要)時,和其它時間由專業人員手工確定的.每个月都有可能会修改单价。

问题:这个数据库要如何设计?修改基本单价后,如何修改送貨单中的单价?

个人认为 你可以在客户材料关系表中 添加一个价格字段。 以确定每次的价格。
指间的风 2009-03-24
  • 打赏
  • 举报
回复
数据库
材料表 客户材料关系表 客户表
不知道你们那里库存如何计算的
fgh0302 2009-03-24
  • 打赏
  • 举报
回复
本来想看看 繁体字看不懂 楼主自己想呗
xyz136299110 2009-03-23
  • 打赏
  • 举报
回复
感觉看不懂。。。
changjiangzhibin 2009-03-23
  • 打赏
  • 举报
回复
LZ可移贴到SQL版块去问问 (MS没太看明白,呵呵)
加载更多回复(1)

13,190

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 分析与设计
社区管理员
  • 分析与设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧