跳到正文
IGCSE·Tuition
资讯与通信科技(ICT) · 课程

定义主键与验证条件

两个字段看起来都适合当标识,一条验证规则看起来正确,却仍可能放进错误数据。

本页内容
  1. 如何选择主键?
  2. 如何写验证条件?
  3. 例题详解
  4. 要留意的错误
  5. 自我检测
  6. 下一步

主键(primary key) 是一个在每条记录中取值都不同的字段,这样每条记录都能被找到,也不会和别的记录混淆。验证条件(validation condition) 是某个值在被数据库接受之前必须满足的规则。ICT 实操题常要求你在刚建好的表上同时设定这两样东西。

主键保护表格的结构,验证规则保护数据的质量。两者作用不同,一个字段可以同时拥有两者。本页属于数据库结构与验证。

如何选择主键?

用三个问题检验每个候选字段。

  1. 它唯一吗? 两条记录可能出现相同的值吗?
  2. 它总是有值吗? 新记录可能缺少这个值吗?
  3. 它稳定吗? 这个值将来需要修改吗?

姓名通不过第一个问题。电话号码通不过第三个问题。为表格专门建立的 ID 三项都通过,所以大多数表格都使用 ID。

如何写验证条件?

先用平实的话说明允许什么,再转换成条件。

检查平实的规则条件
范围(range)Fee 介于 0 和 200 之间>=0 AND <=200
长度(length)ID 恰好 4 个字符LEN([MemberID])=4
必填(presence)Name 必须填写Required = Yes
查找(lookup)等级是 A、B 或 Cone of a list: A, B, C
类型(type)Quantity 是整数field type = integer

不同软件的具体语法有差异,所以答题时要把意思写清楚,并使用你所用程序接受的语法。边界值最关键:”>=0” 接受 0,而 “>0” 不接受。

例题详解

一个虚构的自行车俱乐部存放会员资料。任务:为 Fee 字段设定主键和规则,费用必须从 0 到 200(含两端)。

第一步,选主键。 字段有 MemberID、Name、DateJoined、Fee。MemberID 的值是 M001、M002 等,唯一、必填、不会变。MemberID 是主键。

第二步,说明规则。 费用可以是 0、200 或两者之间的任何值。这是两端都包含的范围检查。

第三步,写出条件: >=0 AND <=200

第四步,测试边界值和范围外的值。

测试值预期原因
0接受等于下限
200接受等于上限
45.50接受在范围内
200.01拒绝超过上限
-5拒绝低于下限

再用条件核对一次:0 >= 0 为真,0 <= 200 为真,所以 0 通过。200.01 <= 200 为假,所以不通过。规则的表现符合预期。

要留意的错误

常见的失误是以为通过验证的数据一定正确。

错误想法: 某会员的真实费用是 45.50,却输入了 54.50。它通过了范围检查,所以一定没错。

这项检查只测试数值是否介于 0 和 200 之间。54.50 和 45.50 都在范围内,所以两个数字对调的错误会直接通过。

改正的方法是把验证说成”过滤不合理数据的筛子”,而不是”准确性的证明”。要发现对调的数字,需要把输入内容与原始文件对比,这就是核对。考试作答时两部分都要说:规则拒绝不可能的值,而要确认值正确则需要第二项检查。

自我检测

1. 一张学生表有 StudentID、FullName 和 Class 三个字段,哪个字段最适合当主键?为什么?

查看答案

StudentID。 它唯一且不会变。两个学生可能同名或同班。

2. 写一个验证条件,使考试分数只接受 0 到 100(含两端)。说出检查类型。

查看答案

>=0 AND <=100,属于范围检查(range check)。0 和 100 都被接受,101 或 -1 被拒绝。

3. 表单要求 ID 恰好 4 个字符,用户输入了 M05。哪项检查会拒绝它?为什么?

查看答案

长度检查(length check) 会拒绝它。M05 只有 3 个字符,而规则要求恰好 4 个。

下一步

有了主键和规则之后,可以练习把数据放进表里:导入一份小型虚构数据集。此前的根据样本数据选择字段类型已经给了你这些规则所依赖的类型。ICT 实操任务与证据检查器可帮助你为这类任务列出验收标准。

有些学生能背出各种检查的名称,却在被要求测试规则时失分。ICT 线上一对一补习的老师可以提供新的表格,并用不寻常的测试值检验你的条件。

常见问题

好的主键有什么特点?

主键必须在每条记录中都不同、不能为空,而且不太会变动。会员编号或库存编号适合。姓名不适合,因为两个人可能同名;电话号码也会更换。如果数据里没有任何唯一的字段,就另外加一个 ID 字段。

验证(validation)和核对(verification)一样吗?

不一样。验证检查数据是否合理、是否被允许,例如数字是否在范围内。核对检查数据是否按原意抄写或输入,例如输入两次或与原始资料对比。通过验证的数据仍然可能是错的。

应该掌握哪些验证检查?

要认识范围、长度、类型、必填、格式和查找列表检查,并能说出每一种检查测试什么。回答时要小心说明检查能发现什么、不能发现什么。你所考年份的列表请在 Cambridge ICT 0417 课程大纲页面查看。

更新于:

下一步

如果你能说出规则却不确定它是否真能保护表格,一对一的老师可以用刁钻的测试值陪你检验规则,指出漏洞在哪里。

一小时付费试听课,按所安排老师确认的收费,RM80 起。 其他费用、时间安排及后续课程,在试听课后由家长与老师直接确认。

补习由家长或监护人安排。用 WhatsApp 把这页发给他们,他们就可以替你咨询。

是家长或监护人?在这里咨询

已通过我们的服务帮助 9,000+ 名学生