起步软件技术论坛-X3

 找回密码
 立即注册
搜索
楼主: jakek

【结】附件关联字段唯一问题

[复制链接]
 楼主| 发表于 2009-7-16 21:56:48 | 显示全部楼层
好的,谢谢。
回复 支持 反对

使用道具 举报

发表于 2009-7-17 08:55:15 | 显示全部楼层
现在情况是这样的:
如果设置了文档关联定义,那么你的业务数据集和文档关联数据集就是主从关系了,并且是级联更新。如果你的关联字段在表中不具有唯一约束,加入你把业务表中的关联字段改成了这个字段中已经存在的值,那么从表也更新了,这就形成了多对一或者多对多的管理,这种关系在主从表中是不允许的。所以会提示上面的错误。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-7-17 10:27:10 | 显示全部楼层
那具体是在哪里控制的呢?
哪段代码,或哪张表单设置?
回复 支持 反对

使用道具 举报

发表于 2009-7-17 10:28:09 | 显示全部楼层
平台底层限制的。这个修改不了
回复 支持 反对

使用道具 举报

发表于 2009-7-17 10:29:55 | 显示全部楼层
也就是说平台不支持多个业务数据对应同一个文档这种用法
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-7-17 15:07:47 | 显示全部楼层
那这个setunique的策略的生存期是哪到哪呢?

我想先把它 的enable设为false。
但不清楚在哪把它的enable 设回为 true。

谢谢
回复 支持 反对

使用道具 举报

发表于 2009-7-17 16:43:21 | 显示全部楼层
这个问题,是这样解释,文档关联到了业务表的某一列,于是业务表与文档之间形成了主从关系(业务表为主,文档表为从),这时侯系统默认的这个关联关系是可以级联更新的,也就意味着业务表删除当前记录,文档表中对应的记录也删除,这个时候问题产生了:
1、如果允许业务表记录(与文档表的关联字段)重复,业务表删除当前记录时,文档表将不知道如何处理级联的删除(因为业务表中可能还有其它记录也引用了同一文档)
2、如果不允许业务表记录重复,则删除时就不存在上面的问题。
综上:上面的这种策略是一种不得已成为之的防卫方式。如果楼主想要去掉的话可以在DataSet的Constrains中找到那个属性,把它置了false,不过个人建议,这样做有风险,数据会混乱,原因同上。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-7-21 12:44:29 | 显示全部楼层
那当“文档表将不知道如何处理级联的删除”时,
会以什么形式抛出异常呢?
回复 支持 反对

使用道具 举报

发表于 2009-7-21 14:02:21 | 显示全部楼层
这个要分情况了,最常见的就是不异常就直接删除掉了,比方说你一个文档同时挂到了业务数据A和B上删除A的时候那个文档同时删除,当看B时那个文档也就不存在了,这个时候使用者就会比较疑惑:“系统怎么把我的数据搞丢了”。这在操作来讲可能会当做失误或事故,如果数据意义比较重大的时候在业务上会有更严重的后果!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-7-21 14:05:42 | 显示全部楼层
试了一下,文档关联的删除机制如下,
当删除BIZ主表中一条记录时,系统级联删除文档关联表中的记录。系统不会去管主表中是否有除当前要删除的记录外,与要删掉记录的关联字段值相等的其它记录。
即,在主表中有多个记录(记录1,记录2,记录3)都使用有相同值得字段A(值为“aa”)来关联文档时,删除其中一条记录(记录1),剩下的记录(记录2,记录3)都会失去文档关联。但不会报错。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-12 07:07 , Processed in 0.042052 second(s), 13 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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