以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 如何适应基础数据变更带来的影响呢? (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=11362) |
-- 作者:成都老王 -- 发布时间:2011/7/19 17:34:00 -- 如何适应基础数据变更带来的影响呢? 数据库应用中,如果遇到基础数据变更,是的依赖于该数据的其它历史记录统计不正确,如何处理这种情况呢?
1.比如说:数据库中有2个表《人员信息表》《入库表》。 《人员表》中,ID=1,Name=张三。 《入库表》中,存在3月份办理的某张入库单,其经办人ID=1(打印的经办人姓名=张三)。 4月份时,修改ID=1的name=张山。 结果3月份的入库单经办人也变成“张山”而非“张三”。 -----不允许出现此情况。
[此贴子已经被作者于2011-7-19 18:07:38编辑过]
|
-- 作者:狐狸爸爸 -- 发布时间:2011/7/19 17:37:00 -- 没看懂你的问题 |
-- 作者:成都老王 -- 发布时间:2011/7/19 18:10:00 -- 2.《价格表》中,某种物料价格4元,产生了若干张销售记录。 调价后,价格为5元。 汇总销售记录时,4元的历史记录都变成的5元,就不正确了。 |
-- 作者:狐狸爸爸 -- 发布时间:2011/7/19 18:17:00 -- 这种情况不应该用表达式列,应该用数据列和代码。 处理方法,参考: http://www.foxtable.net/help/topics/1451.htm |
-- 作者:blackzhu -- 发布时间:2011/7/20 8:13:00 -- 以下是引用成都老王在2011-7-19 18:10:00的发言:
2.《价格表》中,某种物料价格4元,产生了若干张销售记录。 调价后,价格为5元。 汇总销售记录时,4元的历史记录都变成的5元,就不正确了。 如果用代码不去刷新就没有问题了,如果用表达式是即时更新的.所以我的赞成做法要么第一个,要么价格表里面的数据只要是新价格就新加入一个数据,调用这个新数据就万事大吉了. |
-- 作者:kgd815 -- 发布时间:2011/7/20 9:32:00 -- 修改ID=1的name=张山 对于改变名称不改变编号的基础数据记录,在其它表使用中,就不能用动态引用的方法,要同时建立 ID name 两个字段,看样子好像数据冗余,只有在新建的时候将基础数据的两个字段同时导入,这样就不会出现上面的问题, 价格也是一样,产品表上的价格只是作为新建时的数据引用,销售表上要同时有价格列,不能用公式列,
|
-- 作者:xl -- 发布时间:2011/7/20 9:39:00 -- 是楼主把问题整得复杂化了,有月份,增加“自定编号”,就不会出现1楼情况。 |