设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

12
返回列表 发新帖
楼主: lgxysl
打印 上一主题 下一主题

数据一致性与有效性的问题

[复制链接]
11#
发表于 2002-10-13 08:28:00 | 只看该作者
我大致看了一下,其实你对医院这个的分析不够全面,表不合理。你至少建立5张表
1、病人表 2、住院表 3、科室医生表 4、科室名表 5、医生表。如果要跟踪治疗过程还要建立治疗变动表来记录病人转科和换医生。和住院表相关的是科室医生表
科室医生表包括:主键、科室名ID、医生ID。
另外,进货价和销售价是没有直接关系的,因为肯定有库存,这里有先进先出算法和加权平均算法两种这要根据财务决定预设一个利润因子是横简单的。
12#
发表于 2002-10-13 18:44:00 | 只看该作者
"对于ID问题,可能你们还不太明白,一个病人,他要住院,他可能住“外科”,也可能住“内科”,还有可能要转科(这就是改科室的实例),例如“何天”这个病人,他得了“肺炎”,他住在“内科”(也就是说他的“住院科室ID”的值是“1”,“1”是“内科”的ID,它代表“内科”,明白吗?),现在他“肺炎”经检查原来是一个肿瘤引起的,要做“外科”手术切除, 那么他就要转科了,也就是说他的“住院科室ID”的值将改为“2”,“2”是“外科”的ID,“2”就代表“外科”,明白吗?但“住院科室ID”改成“2”之后,操作员没有改“主治医生ID”的值(当然这是操作员的错,一般不会出现这样的错误,但不能排除,例如操作员失恋了,心不在焉,偏偏就忘了),它的值仍是“2”,“2”是“李明”这个医生的ID,“2”就代表“李明”这位医生,从“职员表”可以看出,他是“内科”的医生,这就变成“何天”在“外科”住院,他的主治医生却是一个“内科”的医生,这不乱套了吗??"---------------------->所有的人都要你不要修改历史纪录,搞不懂你为什么还是要修改!!!!!你不可以增加吗?????你的思维怎么这么定势!!!!会计为什么会有调帐干嘛不跟你所说的直接改就是了。这才叫乱套嘛
第三个问题程序也是可以控制的嘛。当收款子段变动侯用程序强制收款日期不为空这对你来说很难吗
13#
发表于 2002-10-13 21:05:00 | 只看该作者
老兄:你还没有看懂我楼上贴子的意思。我觉得你有一个错误的思维定势--“什么事情都要由数据结合型窗体来解决”。对于要牵涉Access“事务”处理的问题,最好不要把自己解决问题的手段局限于数据结合窗体。
“科室医生表包括”:主键(ID)、科室名ID、医生ID。
“住院表”:主键(ID)、科室医生表ID、病人ID
病人更改科室或更改医生,只变动科室医生表ID,不会有你说的问题。
至于是通过更改原始记录还是增加纪录来实现住院信息的变更,主要考虑数据量的大小和效率。这和酒店系统有点类似,按目前的硬件,当前台数据库大于2G(SYBASE SQL FOR SCO UNIX)就会影响使用。一张表过大了或者无法实现优化查询,查询速度就会慢。过程跟踪本身就是一系列的纪录,加表只不过多了一次修改,但却保存了一份最新的纪录,而且是最小数据量的纪录。当然最后采用那种方式当然由你的系统特点来决定。
    关于销售价问题还是另外讨论吧。
14#
发表于 2002-10-13 23:44:00 | 只看该作者
文字太多了,飞速跳跃看了一遍,医生一定所在科就定了,在弄个科室字段显然多余,也加大处理难度。
15#
 楼主| 发表于 2002-10-15 15:33:00 | 只看该作者
goodidea老兄很有见地,但这样给查找病人带来一定的困难,例如,一个病人要交款,收款的操作员一般问病人:哪一个科,哪一床,他并不是问“哪一个医生治你的”,也不问”你的住院号是多少?”因为一个病人(或家属,大多数情况下是不知道主治医生姓名和自己的住院号的。所以说"科室"这个字段是必要的。
第一、三这两个问题我已经解决,以可以做到如果发现输入有错,无法保存该记录,也无法关闭窗体,强行关闭窗体窗体会自动再打开并回到出错的记录处。
对于第二个问题,当然,用加权平均法加一个利润因数是个好办法(我也是这样想的),但是领导们有领导们的想法,他们不想让数据库自动确定“销售价”,他们可能是有时想用“加权平均法”算, 有时想用“先进先出法”算,有时想用“后进先出法”算,有时用“移动加权平均法”算,反正是领导们说了算,他们定了之后就让操作员输入,我们现在讨论的不是会计问题,也不是领导们的决策问题,而是讨论在“销售价”是人工录入的情况下,怎样尽量防止操作员输入出错的问题。
16#
发表于 2002-10-15 16:53:00 | 只看该作者
可以由程序找出 哪一个科,哪一床
可以由多名操作员重复输入然后进行比较
17#
发表于 2002-10-30 04:17:00 | 只看该作者
对于“科室”-“人员”问题,我采用标准表处理,可以避免重复或遗漏。标准表包含“科室名称”、“人员姓名”、“职务”三个字段。在工作窗口录入时,科室文本控件、人员姓名控件和职务控件设成组合框,组合框的行来源设为标准表的查询,然后在查询的准则中设置约束条件,如果科室名称不是“生产科”,在姓名的下拉列表中就不会出现“黄小二”。当“黄小二”调动科室时必须先修改标准表。这种方法可以补充"有效性规则"的不足,特别是用在输入客户名称时更有效。因为:“广东省建设银行”和“广东建设银行”、“广东建行”都是广东省建设银行,都是计算机就认为是三个单位,数据处理时就要串户了。
18#
发表于 2002-10-30 04:18:00 | 只看该作者
对于“科室”-“人员”问题,我采用标准表处理,可以避免重复或遗漏。标准表包含“科室名称”、“人员姓名”、“职务”三个字段。在工作窗口录入时,科室文本控件、人员姓名控件和职务控件设成组合框,组合框的行来源设为标准表的查询,然后在查询的准则中设置约束条件,如果科室名称不是“生产科”,在姓名的下拉列表中就不会出现“黄小二”。当“黄小二”调动科室时必须先修改标准表。这种方法可以补充"有效性规则"的不足,特别是用在输入客户名称时更有效。因为:“广东省建设银行”和“广东建设银行”、“广东建行”都是广东省建设银行,都是计算机就认为是三个单位,数据处理时就要串户了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-9-20 08:48 , Processed in 0.094733 second(s), 29 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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