🎉 欢迎来到数据库:构建结构!

你好!本章我们将学习如何打造任何优秀数据库的基石。你可以把自己想象成一名建筑师:在建造摩天大楼之前,你需要一份坚实的蓝图!
从一开始就正确设计数据库结构,对于整洁且高效地存储信息至关重要。别担心这看起来很专业——我们将通过简单的步骤和现实生活中的例子,把每个部分拆解开来。让我们开始构建吧!

1. 理解数据库类型:平面文件与关系型数据库

在开始设计之前,你需要了解组织数据库的两种主要方式:

平面文件数据库 (Flat File Databases)

平面文件数据库是最简单的类型。它将所有数据存储在单个表格中。

类比:想象一个简单的电子表格,其中包含了你所有朋友的详细信息(姓名、电话、地址、最喜欢的颜色)。所有信息都汇集在一个地方。

平面文件的优缺点

优点:

• 设置和使用简单。
• 适合少量数据。

缺点:

• 存在大量数据冗余(相同的数据被重复输入多次)。例如,如果有两名学生住在同一个地址,你就必须输入两次地址。
• 数据不一致:如果你拼错了重复地址中的某一个,你的数据就不准确了。
• 更新困难(你必须在数据出现的所有地方进行更改)。

关系型数据库 (Relational Databases)

关系型数据库将数据存储在多个独立的表格中,并通过共同的字段(键)将它们关联起来。这也是你接下来要学习构建的重点。

类比:不再是一个巨大的朋友名单,而是拥有一个“朋友”表(姓名、ID)和一个独立的“地址”表(ID、街道、城市)。你可以使用 ID 号码将它们关联起来。

核心要点(数据库类型)

关系型数据库虽然设置复杂,但更适合大型数据集,因为它们能最大限度地减少数据重复(冗余),并使数据保持一致且易于管理。

2. 创建表格结构:字段与数据类型

创建数据库结构(表格)的第一步是定义你需要存储什么信息。这些信息项被称为字段 (fields)

2.1 导入数据(当无法从零开始时)

有时,你所需的数据已经以其他格式存在,例如纯文本文件 (.txt) 或逗号分隔值文件 (.csv)。

你必须学会使用指定的字段名从现有文件导入数据(包括 .csv 和 .txt)来创建表格。导入时,数据库软件通常会尝试猜测数据类型,但你必须手动检查并调整它!

2.2 设置字段名

字段名应该具有描述性且清晰易懂,例如:FirstName(名字)、DateOfBirth(出生日期)或 IsActiveMember(是否为活跃会员)。

2.3 选择合适的数据类型

数据类型告诉数据库该字段将存储什么类型的信息(例如:文字、数字或日期)。选择错误类型会导致错误并影响计算。

你必须掌握的四种主要数据类型:

1. 文本/字符串 (Text/String):

• 用于单词、名字、地址,或不需要进行计算的数字(如电话号码、邮政编码或学生 ID)。
• 教学大纲中将其称为文本 (Text)

2. 数值 (Numeric):

• 用于可能需要进行计算的数字(例如:数量、价格、年龄)。
• 你需要设置的数值数据子类型包括:
    • 整数 (Integer):仅限整数(例如:购买商品的数量:5)。
    • 小数 (Decimal):带有分数部分的数字。
    • 货币 (Currency):需要货币符号(如 $)的数字。
    • 百分比 (Percentage):显示为百分比格式的数字(例如:25%)。
    • 你还必须能够设置所需的特定小数位数

3. 日期/时间 (Date/Time):

• 用于日期和时间(例如:出生日期、交易时间)。
• 你必须设置显示格式(例如:DD/MM/YYYY 或 YYYY-MM-DD)。

4. 布尔/逻辑 (Boolean/Logical):

• 用于只有两种取值之一的字段:真或假。
• 教学大纲中将其称为布尔/逻辑 (Boolean/Logical)
示例:订单是否已发货?(是/否)。该学生是男性吗?(真/假)。
• 你必须设置显示格式(例如:yes/no, true/false,或复选框)。

💡 快速回顾:为什么数据类型很重要

如果你将价格字段设置为“文本”,你就无法使用 SUM 函数来对所有价格进行求和!一定要选择与你需要执行的处理方式相匹配的数据类型。

3. 定义关系:主键与外键

这是构建关系型数据库最重要的部分。键(Key)是我们连接表格的方式。

3.1 主键 (Primary Key, PK)

主键是一个(或一组)能够唯一标识表中每一条记录的字段。它是每一条条目的唯一“身份徽章”。

主键的特征:

唯一性:没有两条记录可以拥有相同的主键值。
非空性:它不能为空 (null)。
示例:学生 ID 号、客户 ID 或产品代码。

你知道吗?有时你可以将两个字段组合在一起形成一个唯一键,这被称为复合键 (composite key)

3.2 外键 (Foreign Key, FK)

外键是一个在表中引用另一个表主键的字段。它是连接器或“桥梁”。

外键的特征:

• 它连接两个表格。
• 在它所在的表中,它不一定要是唯一的(例如:多名学生可以共享同一个 TeacherID)。
• 它建立了必要的关系

示例:在“学生”表中,TeacherID 字段就是一个外键。它链接回“教师”表中的 TeacherID(主键)。

3.3 创建表之间的关系

在数据库软件中,你将使用这些键来创建关系。IGCSE 数据库中最常见的关系是一对多 (One-to-Many)

示例:一位教师(主键)教授多名学生(引用该教师的外键)。

设置这些关系可以确保参照完整性 (referential integrity)——这意味着你不会意外地将学生分配给不存在的教师!

核心要点(键与关系)

主键确保每条记录都是唯一的。外键将表格连接在一起,形成关系型数据库并防止数据冗余。

4. 设计数据录入表单 (Data Entry Form)

一旦表格和关系设置完毕,你需要一种方式让用户轻松、准确地输入数据。这是通过数据录入表单来完成的。

4.1 良好表单设计的特征

优秀表单的目标是使数据录入对用户来说快速、准确且容易

良好的表单设计包括:

清晰的布局:逻辑顺序,将相关字段分组。
适当的间距:充足的留白,使表单看起来不杂乱。
合适的字体和字号:易于阅读的文本。
标题和标签:为每个输入字段提供清晰的标签。
使用适当的控件:为数据类型选择正确的视觉元素。(见第 4.2 节)

4.2 选择正确的表单控件

你应该使用专门的控件来加速录入并减少错误,而不是对每个字段都使用标准文本框:

• 单选按钮 (Radio Buttons):当用户必须从小列表中只选择一个选项时使用。
    示例:选择性别(男或女)。

• 复选框 (Check Boxes):用于布尔/逻辑数据类型,用户在是或否,或者真或假之间进行选择。它们可以被选中(真)或未选中(假)。
    示例:商品是否有库存?(如果有,勾选框)。

• 下拉菜单 (Drop-down Menus/Combo Boxes):当字段有大量可接受的输入选项,或者为了确保用户通过从列表中选择来保持数据录入的一致性时使用。
    示例:选择国家或预定义的部门名称。

核心要点(表单设计)

设计良好的表单会利用留白和适当的控件(如单选按钮或下拉菜单)来引导用户,使数据录入既高效又准确。

现在,你已经掌握了创建稳固数据库结构的艺术!你知道如何定义字段、分配类型、使用键链接表格,并构建用户友好的录入表单。干得漂亮!