简单来说,就设计一个物料表和一个供应商的表就可以了,但供应商和物料其实都是唯一的key。他们本来都是唯一的一条数据,如何一对多的关联呢?
你的问题可能是这样的,每一种物料只有一条数据,而每个供应商也只有一条数据,怎么也无法建立出一对多的关系。如果增加一个关联字段,也只能关联到一条数据,这样的做法一般适用于一对一的关系。
我有个解决方案,不用修改你现在的两个表的设计,新建一个“中介”的中间表。这个中间表两个或三个字段(如果是三个字段,有一个字段是自增加的Key)。主要的两个字段就是物料表的key和供应商表的key,这样,每种物料对应多少供应商,全部插入到这个中间表里面。物料表或者供应商表的数据只要没有新的数据加入,就可以不用去改它们。实际上,这种设计还可以应用到权限角色管理上,比如一个User对应多个角色Role,而在User表,每个人一条数据就够了,而不是去增加只有角色不同的User数据,在执行查询 *** 作的时候,也会引起逻辑混乱。
从你的描述中,可以看出 “演员”与“”的关系是“多对多”
1、“多对多”的关系,必须要产生一个“中间表”,用来保存他们的连接关系。
2、“中间表”用来保存他们的连接关系,也方便了日后的更改,如果有连接关系变动,直接修改“中间表”即可。
(你可以从我的图很容易的理解,希望可以帮助你!)
一、计算机审计的涵义
计算机审计可以包括对计算机产生的电子数据的审计以及对信息系统本身的审计。
电子数据审计是以被审计单位信息系统产生的电子数据为审计对象的审计。
信息系统审计是以被审计单位的信息系统本身为审计对象的审计,包括对信息系统内部控制的审计、对信息系统组成部分的审计以及对信息系统开发过程的审计等。
二、计算机审计的过程
1 审计准备阶段
2 审计实施阶段
3 审计终结阶段
三、计算机审计软件
1 通用审计软件和专业审计软件
2 联网审计软件和非联网审计软件
3 一般审计软件和审计全过程管理软件
第二节 电子数据审计
一、数据采集
1 数据采集的概念
数据采集是指根据审前调查所提出的数据需求,按照审计目标,采取一定的方法和工具对被审计单位数据库中的数据进行采集的工作。
2 数据采集的特征
数据采集具有明确的选择性和目的性。
3 数据采集的内容
4 数据采集的方式
(1)直接拷贝和直接读取
(2)利用嵌入审计模块采集数据
(3)利用财务软件标准接口采集数据
(4)网上采集
(5)文件传输
(6)开放数据互连(ODBC)
5 数据采集的过程
(1)发出数据需求说明书
(2)采集数据
(3)数据验证
二、数据清理
1 数据清理的概念和作用
2 数据不规范的情形
3 数据清理的方法
4 数据清理的过程
三、数据转换
1 数据转换的概念
数据转换是指对数据清理后得到的数据进行语法和语义上的转换,得到适合审计分析数据的过程。
2 数据转换的情形
3 数据转换的方法
(1)使用数据转换工具。数据转换工具包括数据库管理系统自带的数据转换工具如 Microsoft SQL Server 自带的 DTS 工具,或者审计软件附带的转换工具,甚至是 EXCEL 等都可以作为转换工具使用。
(2)使用SQL语句。大部分数据库都支持SQL语句,通过SQL语句可以很方便地对数据库进行查询替代等转换 *** 作。
(3)使用程序语句。对于一些固定的数据转换情形,需要重复使用的,可以采用程序编码的方式来转换数据。
4 数据转换的过程
四、数据验证
1 数据验证的概念
数据验证是指在数据的采集、清理、转换等过程中,对数据进行检查验证其真实性、准确性和完整性等目标的过程。
2 数据验证的方法
(1)通过核对总记录数和总金额数来验证。这种验证方法的原理是数据在采集、清理和转换过程中总记录数和总金额数应保持不变。审计人员可以通过检查数据采集、清理和转换前后数据的总记录数和金额数是否发生变化,来验证数据的完整性。
(2)通过观察顺序码的断号和重号来进行验证。顺序码是对会计凭证的控制措施,能够保证凭证的真实性和完整性。检查顺序码是否发生断号、重号能够保证电子数据在采集、清理和转换过程中凭证数目正确、完整。
(3)通过会计的勾稽关系来进行验证。会计账目和报告存在很多勾稽关系,有基本的借贷平衡关系,也有不同会计科目之间存在的勾稽关系,如资产负债表中资产原值减去累计折旧等于资产净值。检查这些勾稽关系,能够对数据的真实性、准确性和完整性进行验证。
五、创建中间表
1 中间表的概念
中间表是将被审计单位的电子数据,在进行清理、转换和验证后,进一步进行投影、连接等 *** 作,创建的适合审计人员进行数据分析的表。
2 中间表的特点
一是“面向主题”,中间表需要根据不同审计项目的主题来创建。项目不同,构建审计中间表的思路就不同。二是“面向历史”,任何对中间表的创建都不应该增加和修改其历史数据,而只能是对历史数据的选择和整理。
3 中间表的分类
中间表可以分为基础性中间表和分析性中间表。电子数据经过清理、转换和验证后,经过一些处理如删除与审计无关的字段、建立表与表之间的连接,模拟出审计人员可以直接查阅的数据表,就可以得到基础性中间表。对基础性中间表进一步进行处理,如按照审计分析模型进行字段选择、连接处理,就可以得到分析性中间表。分析性中间表的主要目的是实现分析模型,得到审计结果。
4 中间表的创建步骤
(1)准备工作在创建中间表前,应做好数据备份,以免创建中间表失误对基础数据造成影响。另外要对数据字段的含义及数据表间的关系进行分析,这是创建中间表的基础工作。
(2)创建中间表一般而言,满足审计要求的数据会分散在不同的数据库的数据表中,因此需要通过投影、连接等 *** 作把审计相关的数据整合起来。常见的整合有把数据代码与具体业务整合起来、把不同流程的业务数据整合起来、将不同时间段的业务数据整合起来以及将财务数据和业务数据整合起来等。通过表间的数据连接和运算 *** 作,将这些数据整合在一起,就形成了中间表。
(3)验证。最后应对创建中间表前后的数据进行验证,观察有无误删除了应保留的字段或保留了应删除的字段,观察连接条件有没有逻辑错误,连接 *** 作有没有问题。数据验证无误后,写出数据使用说明书,对创建中间表的结果以及数据分析的初步思路和建议做出说明。
六、数据分析
1 数据分析的概念
数据分析是指通过建立审计分析模型对数据进行核对、检查、复算、判断等 *** 作将被审计单位数据的现实状态与理想状态进行比较,从而发现审计线索,搜集审计证据的过程。
2 数据分析的类型
根据分析对象的不同可以分为总体分析和具体分析。
3 建立审计分析模型的依据
4 审计取证
第三节 信息系统审计
一、信息系统审计概述
(一)信息系统审计的概念
(二)信息系统审计的目标
信息系统审计的总目标是通过评价信息系统本身的安全性、可靠性,从而合理保证信息系统所产生数据的准确性、完整性,从而保证企业资产安全性、完整性以及效率效果等目标。
二、信息系统审计的内容
(一)信息系统内部控制审计
信息系统内部控制与传统内部控制有所不同,分为一般控制和应用控制。
一般控制是适用于信息系统的所有信息处理而设定的政策和措施,其目的在于保证所有的信息处理的准确性和可靠性。包含组织控制、开发维护控制、安全控制和软硬件控制等。
应用控制是适应特定的应用系统如工资核算系统等的控制要求,为保证应用系统的输人、输出、处理的正确性和可靠性而制定的政策和措施。应用控制包含输人控制、输出控制和处理控制。
1 一般控制审计
(1)组织控制审计
(2)信息系统的开发维护控制审计
(3)安全控制审计
(4)软硬件控制审计
2 应用控制审计
(1)输人控制审计
(2)处理控制审计
(3)输出控制审计
(二)信息系统组成部分的审计
1 应用程序的控制措施是否健全有效
2 应用程序的合法性
3 应用程序的正确性
4 应用程序的效率性
2007年试题
下列各项中,属于信息系统内部控制中应用控制的是:
A 组织控制 B 安全控制
C处理控制 D软硬件控制
答案C
(三)信息系统生命周期的审计
1 信息系统的可行性。审计人员应检查系统的可行性文档,从经济上、技术上判断系统是否可行,能否达到预期的经济效益和社会效益,系统的功能是否符合相关法律法规的规定。
2 信息系统开发、设计、编码、测试等阶段是否按照事先设计的文档去执行,开发过程的每一个阶段是否完成阶段目标,才转人下一个阶段。信息系统开发的文档资料是否完整。系统的文档资料包括可行性研究报告及其批准资料、系统分析与设计资料、程序设计资料以及测试资料和 *** 作手册等。
3 信息系统测试的全面性、适当性。系统在投入运行之前,要进行测试。测试一般由专门的系统测试人员来完成。审计人员应审查测试数据是否包括一些有代表性的错误数据,系统对错误数据是否进行正确处理等。
4 完成的信息系统功能上是否达到预定的需求,时间进度是否划之内,预算有没有超过标准等。
三、信息系统审计的技术方法
(一)信息系统了解的方法
1 询问法
2 检查法
3 观察法
(二)信息系统描述的方法
1 文字描述法
2 表格描述法
3 图形描述法
(三)信息系统测试的方法
1 测试数据法
2 平行模拟法
3 嵌入审计模块法
4 虚拟实体法
5 受控处理法
6 受控再处理法
7 程序代码检查法
2007年试题
综合分析题 (本题包括三个案例答题,每个案例答题10分,共30分。每个案例答题包括5道小题,每道小题2分。每道小题各有四项备选答案,其中有一项或多项是符合题意的正确答案,全部选对得满分。多选、错选、不选均不得分。有多想项正确答案的小题,在无多选和错选的情况下,选对一项得05分。)
案例一
(一)资料
20x7年4月,某审计机关派出审计组,对某企业20x6年度财务收支情况进行审计。根据工作安排,由处长李某和副处长张某分别担任该项目的审计组组长和主审,审计机关要求审计组在5月1日之前向审计机关提交审计组的审计报告。在审计准备阶段,审计组进行了以下工作:
1 在确定审计组其他成员时,李某挑选了以下几名审计人员,并说明理由。
(1) 王某是具有多年审计经验的老同志,而且参加过上一次对该企业的审计,熟悉情况。
(2) 钱某去年刚刚从该企业的财务处调入审计机关,对该企业的情况和人员都很熟悉,便于开展工作。
(3) 孙某是前年计算机专业毕业的大学生,参加过几个审计项目,考虑由他负债转换和分析该企业的电子数据。
(4) 周某是去年录用的审计专业大学毕业生,工作热情很高,而且他的父亲是该企业的财务总监,他在审计组,有利用获得该企业对审计工作的支持。
2 考虑到20x6年审计机关曾经对该企业进行过审计,而且审计时间很紧,因此决定不再进行内部控制调查和测试,并且将上一次未审计的长期借款、固定资产等几个项目确定为本次审计重点。
3 审计组为了控制审计质量,决定将可接受的审计风险确定为0
4 该企业在20x6年已经全面使用管理信息系统进行财务核算和业务管理,因此审计组决定将信息系统也作为本次审计的一项重要内容。
(二) 要求:根据上述资料,为下列问题从备选答案中选出正确的答案。
51关于审计组组长李某和主审张某的责任,下列说法中正确的有:
A 审计组组长李某对审计工作底稿的复核意见负债
B 经审核组租长李某授权,主审张某可以承担对审计工作底稿进行复核的职责
C 审计组的审计报告一般应由审计组组长李某负债统一起草
D 审计组组长李某对提交给审计机关的审计报告负债
答案ABCD
52针对“资料1”中的情况,适合参加本次审计项目的人员有:
A王某 B 钱某 C, 孙某 D周某
答案AC
53针对“资料2”中的情况,下列说法中正确的有:
A 无论何种情况下,审计人员都应对被审计单位的内部控制进行调查和测试,这是审计准则的要求
B 即使是再次审计,也应对被审计单位自上一次审计以来内部控制的变化情况进行调查,然后在决定是否进行内部控制测试
C 上一次审计过的项目应该不会再出现问题,因此可以直接将上一次未审计的项目作为本次审计重点
D 审计人员应在对报表项目进行分析性复核,对内部控制进行调查、测试和评价基础上确定审计重点,不应直接将上一次未审计的项目确定为本次审计重点
答案BD
54针对“资料3”中的情况,下列说法中正确的是:
A 可接受的审计风险应确定为0,有利于审计机关防范审计风险
B 可接受的审计风险不应确定为0
C 由于该项目属于再次审计,审计人员对被审计单位情况非常熟悉,因此可接受的审计风险可以确定为0
D是否将可接受的审计风险确定为0,取决于审计人员对被审计单位重大错误风险水平的评估
答案B
55针对“资料4“中的情况,下列说法正确的有:
A信息系统审计的内容主要包括信息系统内部控制审计、信息系统组成部分审计和信息系统生命周期审计
B信息系统的可行性是信息系统生命周期审计的内容之一
C审计人员可以采用询问、检查、观察等多种方法对信息系统进行调查
D信息系统审计是对被审计单位的电子数据进行的审计
答案ABC1 商品 表
2 用户 表
3 销售记录 表
统计某商品的周,月,年销量
它的利润以及利润百分比
用户消费情况和销售情
都可以根据上述3个表中进行统计
传说中的,蝴蝶图,这个需要一点基础才能看懂我下面的文字, 或者你去百度文库,我有发表蝴蝶图的详细做法
1/插入横向条形簇状图中的第二个柱形图这个时候每一条柱由两种颜色组成
2/在其中一种颜色的柱子上点鼠标右键, 将它设置为次坐标
3/将水平轴的次坐标设置为逆序 (注意是水平轴/次坐标)
4/将水平轴的主坐标和次坐标的坐标轴数值范围设置-100到100 (假设你的单个数据小于100的话, 这个需根据实际调整,决定你上传问题时左图或右图的样式)
5/完上一步你的图应该就已经完成了 基实你上传的第一个图还有一个动作未完成第二个图没有水平坐标轴就无所谓了
就是让-20%至-120%前面的负号去掉, 也就是说坐标轴的值是中间小两头大,而不是递增或递减的, 因为这种图没有那一侧应该是负数的, 最终顺序应该是80%/30%/20%/70%/120%
去掉负号的方法是:选中坐标轴--格式设置--类型为自定义--在格式下输入"0;0",再点添加就OK了
如果你要在中间表中加其他字段,就只能新加一个表一个类,两个类是不能实现的。我原来做的类似你说的,把有用的给你写出来了。大概这个意思,简单明了,希望你能看懂T_Module 目录表;T_Role 角色表; ACL 权限表(一个角色可以看到多个目录,一个目录可以被多个目录看到)
Class Module
class Module {
private int id;
private String name;
private String url;
private int orderNo;
private String sn;
//getter and setter
Class ROLE
class Role {
private int id;
private String name;
//getter and setter
Class ACL
class ACL{
private int id;
private String principalType;
private int principalId;
private int moduleId;
private int aclState;
//setter and getter
moduleXML
<id name="id">
<generator class="native"/>
</id>
<property name="name"/>
<property name="url"/>
<property name="orderNo"/>
<property name="sn"/>
RoleXML
<id name="id">
<generator class="native"/>
</id>
<property name="name"/>
ACLXML
<id name="id">
<generator class="native"/>
</id>
<property name="principalType"/>
<property name="principalId"/>
<property name="moduleId"/>
<property name="aclState"/>
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)