设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

12下一页
返回列表 发新帖
查看: 4299|回复: 13
打印 上一主题 下一主题

[表] 有关于BOM表关系的建立

[复制链接]

点击这里给我发消息

跳转到指定楼层
1#
发表于 2015-11-8 15:55:12 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
本帖最后由 doney88 于 2015-11-8 16:37 编辑

由于本人tblBOM表中是已 FMainID,FChildID 分别链接主物料表的FMaterialID字段,这样有两个字段同时链接一个表,我当初是关系设计是在两个表中建立一个关系,FmaterialId->FMainID,FMateiralID->FChildID。

当然这样的关系自然就不能事实参照完整性。在数据运行过程中就会带来大量的沉余数据(当然你也可以用代码去完善这个结构上的不足,只不过多浪费事件写代码,还要废脑细胞)。比如你删除了tblMaterial物料数据表中的某一个数据,TBLBOM中没有删除,那么在你加载树BOM的时候,可能就会出错。这个问题困扰了我很久。(数据库当然要严谨啦!:))

今天突然试试用其他的办法,就是再拉一个tblmaterial进关系视图,这样就可以出现了多的一个名字tblMaterial_1实际就是tblMaterial的克隆。
这样就有两个表,就分别作为tblBOm中FMainID,FChildID字段进行链接,并切实施完整参照性。

这样,无论你想删除某条物料,如果在之前BOM数据中引用过,都可以同时删除BOm的那条记录(无论是FMainID,还是FChildID)。根据你的数据流,跟业务留,你也可以禁止删除该条数据。

也许吧很多大神已经发现,但是这个对我是完全误打误撞,这种感觉很棒,所以发到群里得瑟一下。。哈哈。。


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅

点击这里给我发消息

14#
 楼主| 发表于 2015-11-9 16:48:24 | 只看该作者
13#
发表于 2015-11-9 16:47:22 | 只看该作者
哇,好厉害{:soso_e103:}

点击这里给我发消息

12#
 楼主| 发表于 2015-11-8 16:56:57 | 只看该作者
todaynew 发表于 2015-11-8 16:52
半成品在工序间加以区别,而又不想增加物料表的记录时,会出现重复的问题。

哦,了解了。。

你涉及到了是车间统计这一块吧,我现在还只是在弄采购这一块,所以可能没有研究的像你那么深入。可能以后深入了,也会发现这样的问题。

谢谢提醒。
11#
发表于 2015-11-8 16:52:57 | 只看该作者
本帖最后由 todaynew 于 2015-11-8 16:55 编辑
doney88 发表于 2015-11-8 16:41
比如说我第一层的物料(FMainID - 成品A)肯定是通过下一层的物料{FChildID - 半成品A}加工而来。我的理解 ...


半成品在工序间加以区别,而又不想增加物料表的记录时,会出现重复的问题。
主要是组合主键的约束过强,这需要根据实际情况来确定。如果需要强约束可以这样处理,如果不需要强约束,则不需要这样处理。因为参照完整型与是否设置组合主键是没有直接关系的。

点击这里给我发消息

10#
 楼主| 发表于 2015-11-8 16:41:28 | 只看该作者
todaynew 发表于 2015-11-8 16:38
明白了,你是按最后一个图做的。这样是可以。
最后一个图中,不需要设置组合主键,将主键设为FBomID比较 ...

比如说我第一层的物料(FMainID - 成品A)肯定是通过下一层的物料{FChildID - 半成品A}加工而来。我的理解是不可重复的。

你说的意思是?在什么情况下会重复吗?
9#
发表于 2015-11-8 16:38:39 | 只看该作者
本帖最后由 todaynew 于 2015-11-8 16:40 编辑
doney88 发表于 2015-11-8 16:32
你是说我这样在FMainID跟FChildID 不能录入不同的对应的tblMaterial.FMaterialID的值是吗?
我上面做的 ...


明白了,你是按最后一个图做的。这样是可以。
最后一个图中,不需要设置组合主键,将主键设为FBomID比较合理。FMainID与FchildID是可能重复的。即使不允许其重复,也只是将其视为备选主键为好。

点击这里给我发消息

8#
 楼主| 发表于 2015-11-8 16:38:14 | 只看该作者
todaynew 发表于 2015-11-8 16:30
你要用查询向导试试。看看是否能得到两个不同的物料编号。

我又上传了两张图片,你看下你说的是不是这个意思?

点击这里给我发消息

7#
 楼主| 发表于 2015-11-8 16:32:40 | 只看该作者
todaynew 发表于 2015-11-8 16:30
你要用查询向导试试。看看是否能得到两个不同的物料编号。

你是说我这样在FMainID跟FChildID 不能录入不同的对应的tblMaterial.FMaterialID的值是吗?
我上面做的测试,没有问题,可以录入。
6#
发表于 2015-11-8 16:30:55 | 只看该作者
doney88 发表于 2015-11-8 16:27
两个都对应

你可以看下我上传的图片的第二张。

你要用查询向导试试。看看是否能得到两个不同的物料编号。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-9-21 22:26 , Processed in 0.117623 second(s), 35 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表