81、Access数据库构建与表关系定义全攻略

Access数据库构建与表关系定义全攻略

1. 大型数据库创建流程

创建小型数据库时,若仅包含少量表格,且数据和生成的报告较为简单,可按常规流程:创建表格、填充数据,再定义表格间的必要关系。但对于大型数据库,这种方法并不适用,因为大型数据库通常有更多表格和复杂的关系类型。创建大型数据库的标准流程如下:
1. 与数据使用者交流,收集尽可能多的文档,以了解数据的使用方式。收集样本报告,并让用户描述所需的数据。
2. 尽可能收集一些有代表性的样本数据。
3. 规划表格、字段、数据类型、其他属性以及表格之间的关系。
4. 创建表格并定义它们之间的关系。
5. 用样本数据填充表格。
6. 设计所需的查询、表单和报告,然后进行测试。
7. 根据测试结果,必要时修改数据库结构。
8. 将实际数据输入到数据库表格中。

在创建数据库的每个阶段,测试都至关重要。而且,数据库最终确定并实施后,并不意味着工作结束,随着新功能的需求和收集的数据变化,数据库的设计也会不断发展。

2. 复习检查问题

以下是一些复习检查问题,帮助巩固所学知识:
1. 什么是将上一条记录中相同字段的值插入到当前记录的键盘快捷键?
2. (某种)数据是一种允许你在不打开源文件的情况下从源复制数据的过程。
3. (某个)图库允许你同时向表格中添加一组相关字段,而不是逐个添加每个字段。
4. 从表格结构中删除一个字段会有什么影响?
5. (某种)文本文件是其中数据字段由逗号或制表符等字符分隔的文件。
6. 在一对多关系中,(某个)表是“一”表,(某个)表是“多”表。
7. (某种规则)是Access在更新数据库中的数据时强制执行的一组规则,以保持相关表格之间的一致性。

3. 复习作业操作步骤
3.1 供应商与产品数据库操作

为了跟踪查塔姆社区卫生服务中心合作的供应商及其产品和服务信息,需要完成以下操作:
1. 打开之前创建的供应商数据库。
2. 在设计视图中打开供应商表,设置字段属性如下表所示:
| 字段名称 | 数据类型 | 描述 | 字段大小 | 其他 |
| — | — | — | — | — |
| SupplierID | 短文本 | 主键 | 6 | 标题 = 供应商ID |
| Company | 短文本 | | 50 | |
| Category | 短文本 | | 15 | |
| Address | 短文本 | | 35 | |
| City | 短文本 | | 25 | |
| State | 短文本 | | 2 | |
| Zip | 短文本 | | 10 | |
| Phone | 短文本 | | 14 | 标题 = 联系电话 |
| ContactFirst | 短文本 | | 20 | 标题 = 联系人名字 |
| ContactLast | 短文本 | | 25 | 标题 = 联系人姓氏 |
| InitialContact | 日期/时间 | | | 格式 = 短日期,标题 = 初次联系 |

  1. 保存供应商表。当出现可能丢失一些数据的消息时,点击“是”按钮。切换到数据表视图,必要时调整列宽以达到最佳显示效果。然后保存并关闭供应商表。
  2. 在设计视图中创建一个新表,使用以下表设计:
    | 字段名称 | 数据类型 | 描述 | 字段大小 | 其他 |
    | — | — | — | — | — |
    | ProductID | 短文本 | 主键 | 5 | 标题 = 产品ID |
    | SupplierID | 短文本 | 外键 | 6 | 标题 = 供应商ID |
    | ProductName | 短文本 | | 75 | 标题 = 产品名称 |
    | Price | 货币 | | | 格式 = 标准,小数位数 = 2 |
    | TempControl | 是/否 | | | 标题 = 温度控制? |
    | Sterile | 是/否 | | | 标题 = 无菌? |
    | Units | 数字 | | 整数 | 小数位数 = 0,标题 = 每箱单位数,默认值 = [无条目] |

  3. 指定ProductID为主键,然后将表保存为“产品”表。

  4. 修改表结构,在“价格”和“温度控制”字段之间添加一个名为“重量”的新字段(数据类型:数字;字段大小:单精度;小数位数:2;标题:磅重;默认值:[无条目])。然后将“单位”字段移动到“价格”和“重量”字段之间。
  5. 在“产品”表中输入以下记录:
    | 产品ID | 供应商ID | 产品名称 | 价格 | 每箱单位数 | 磅重 | 温度控制? | 无菌? |
    | — | — | — | — | — | — | — | — |
    | SS582 | DUR368 | 听诊器 | 65.00 | 1 | 1 | 否 | 否 |
    | AL487 | COU392 | 酒精湿巾 | 15.00 | 1000 | 12 | 是 | 是 |

调整所有数据表列宽以达到最佳显示效果。完成后,保存并关闭“产品”表。
8. 使用导入电子表格向导向“产品”表添加数据。需要导入的数据包含在提供的数据文件的Access1 > 复习文件夹中的Supplies工作簿(Excel文件)中。操作步骤如下:
- 指定Supplies工作簿为数据来源。
- 选择追加数据的选项。
- 选择“产品”表。
- 在导入电子表格向导对话框中,确保Access确认第一行包含列标题,然后导入到“产品”表。不要保存导入步骤。
9. 在数据表视图中打开“产品”表,必要时调整列宽以达到最佳显示效果。然后保存并关闭“产品”表。
10. 定义主“供应商”表和相关“产品”表之间的一对多关系。调整表字段列表,使所有字段名称可见。选择关系的参照完整性选项和级联更新选项。
11. 保存关系窗口的更改并关闭它,压缩和修复供应商数据库,然后关闭数据库。

4. 案例问题操作
4.1 GoGopher!案例

Amol Mehta希望使用Gopher数据库跟踪加入其在线业务的会员信息以及会员注册的计划。需要完成以下操作:
1. 打开之前创建的Gopher数据库。
2. 在设计视图中打开“计划”表,更改以下字段属性:
- PlanID:在描述中输入“主键”,将字段大小更改为3,并在标题中输入“计划ID”。
- PlanDescription:将字段大小更改为40,并在标题中输入“计划描述”。
- PlanCost:将格式更改为“标准”,指定0位小数,并在标题中输入“计划成本”。
- FeeWaived:在标题中输入“费用减免”。
3. 保存并关闭“计划”表。当出现可能丢失一些数据的消息时,点击“是”按钮。
4. 在设计视图中创建一个新表,使用以下表设计:
| 字段名称 | 数据类型 | 描述 | 字段大小 | 其他 |
| — | — | — | — | — |
| MemberID | 短文本 | 主键 | 4 | 标题 = 会员ID |
| PlanID | 短文本 | 外键 | 3 | 标题 = 计划ID |
| FirstName | 短文本 | | 20 | 标题 = 名字 |
| LastName | 短文本 | | 25 | 标题 = 姓氏 |
| Phone | 短文本 | | 14 | |
| Expiration | 日期/时间 | 会员资格到期日期 | | 格式 = 短日期,标题 = 到期日期 |

  1. 指定MemberID为主键,然后将表保存为“会员”表。
  2. 使用数据类型图库中的“地址快速启动”选择在“姓氏”和“电话”字段之间添加五个字段。
  3. 切换到设计视图,然后对“会员”表设计进行以下更改:
    • 地址字段:将此字段的名称更改为“街道”,将字段大小更改为40,并删除标题的条目。
    • 城市字段:将字段大小更改为25,并删除标题的条目。
    • 州/省字段:将此字段的名称更改为“州”,将字段大小更改为2,删除标题的条目,并输入“CO”作为默认值。
    • ZIP/邮政字段:将此字段的名称更改为“邮政编码”,将字段大小更改为10,并删除标题的条目。
    • 删除“国家/地区”字段从“会员”表结构中。
    • 在“电话”和“到期”字段之间添加一个名为“加入日期”的新字段(数据类型:日期/时间;格式:短日期;标题:加入日期)。
  4. 在“会员”表中输入以下记录:
    | 会员ID | 计划ID | 名字 | 姓氏 | 街道 | 城市 | 州 | 邮政编码 | 电话 | 加入日期 | 到期日期 |
    | — | — | — | — | — | — | — | — | — | — | — |
    | 1200 | 311 | 学生名字 | 学生姓氏 | 45 Lakeview Dr | Boulder | CO | 80301 | 303 - 559 - 1238 | 11/1/2015 | 2/1/2016 |
    | 1210 | 312 | Todd | Grant | 6 Rosebriar Rd | Erie | CO | 80516 | 303 - 674 - 2140 | 1/20/2016 | 4/20/2016 |

确保在第一条新记录的相应字段中输入你的名字和姓氏。调整所有数据表列宽以达到最佳显示效果。完成后,保存并关闭“会员”表。
9. 使用导入文本文件向导向“会员”表添加数据。需要导入的数据包含在提供的数据文件的Access1 > 案例1文件夹中的Customers文本文件中。操作步骤如下:
- 指定Customers文本文件为数据来源。
- 选择追加数据的选项。
- 选择“会员”表。
- 在导入文本文件向导对话框中,选择导入分隔数据的选项,使用逗号作为分隔符,并将数据导入到“会员”表。不要保存导入步骤。
10. 在数据表视图中打开“会员”表,必要时调整列宽以达到最佳显示效果。然后保存并关闭“会员”表。
11. 定义主“计划”表和相关“会员”表之间的一对多关系。调整“会员”表字段列表,使所有字段名称可见。选择关系的参照完整性选项和级联更新选项。
12. 保存关系窗口的更改并关闭它,压缩和修复Gopher数据库,然后关闭数据库。

mermaid格式流程图如下:

graph LR
    A[打开Gopher数据库] --> B[打开计划表并更改属性]
    B --> C[保存并关闭计划表]
    C --> D[创建新的会员表]
    D --> E[指定主键并保存为会员表]
    E --> F[添加地址字段]
    F --> G[修改会员表设计]
    G --> H[输入会员记录]
    H --> I[使用导入向导添加数据]
    I --> J[调整列宽并保存关闭会员表]
    J --> K[定义计划和会员表关系]
    K --> L[保存关系窗口并压缩修复数据库]
4.2 O’Brien Educational Services案例

Karen O’Brien计划使用OBrien数据库维护其教育服务公司的学生、导师和合同信息。需要完成以下操作:
1. 打开之前创建的OBrien数据库。
2. 在设计视图中打开“导师”表,设置字段属性如下表所示:
| 字段名称 | 数据类型 | 描述 | 字段大小 | 其他 |
| — | — | — | — | — |
| TutorID | 短文本 | 主键 | 7 | 标题 = 导师ID |
| FirstName | 短文本 | | 20 | 标题 = 名字 |
| LastName | 短文本 | | 25 | 标题 = 姓氏 |
| Degree | 短文本 | | 7 | |
| School | 短文本 | | 50 | |
| HireDate | 日期/时间 | | | 格式 = 短日期,标题 = 雇佣日期 |

  1. 在“导师”表的最后添加一个名为“Groups”的新字段,数据类型为“是/否”,标题为“仅团体辅导”。
  2. 保存“导师”表。当出现可能丢失一些数据的消息时,点击“是”按钮。
  3. 在表数据表中,指定以下导师仅进行团体辅导课程:学生名字/学生姓氏(即你的名字)、Amy Hawkins、Lori Burns、Samuel Glick和Caitlin Shea。关闭“导师”表。
  4. Karen在位于提供的数据文件的Access1 > 案例2文件夹中的Client数据库中创建了一个名为“学生”的表。将Client数据库中“学生”表的结构导入到OBrien数据库中的一个新的名为“学生”的表中。不要保存导入步骤。
  5. 在数据表视图中打开“学生”表,然后在表的末尾添加以下两个字段:BirthDate(日期/时间字段)和Gender(短文本字段)。
  6. 使用数据类型图库中的“电话快速启动”选择在“邮政编码”和“BirthDate”字段之间添加四个与电话号码相关的字段。(提示:在添加新字段之前,确保将BirthDate字段设为活动字段。)
  7. 在设计视图中显示“学生”表,删除“BusinessPhone”和“FaxNumber”字段,然后保存并关闭“学生”表。
  8. 重新打开“学生”表并修改其设计,使其与以下设计匹配,包括修订后的字段名称和数据类型:
    | 字段名称 | 数据类型 | 描述 | 字段大小 | 其他 |
    | — | — | — | — | — |
    | StudentID | 短文本 | 主键 | 7 | 标题 = 学生ID |
    | LastName | 短文本 | | 25 | 标题 = 姓氏 |
    | FirstName | 短文本 | | 20 | 标题 = 名字 |
    | Address | 短文本 | | 35 | |
    | City | 短文本 | | 25 | |
    | State | 短文本 | | 2 | 默认值 = “IN” |
    | Zip | 短文本 | | 10 | |
    | HomePhone | 短文本 | | 14 | |
    | CellPhone | 短文本 | | 14 | 标题 = 手机号码 |
    | BirthDate | 日期/时间 | | | 格式 = 短日期,标题 = 出生日期 |
    | Gender | 短文本 | | 1 | (必须为State字段的默认属性值输入引号) |

  9. 将LastName字段移动到FirstName字段之后。

  10. 保存表设计的更改,然后向“学生”表中添加以下记录:
    | 学生ID | 名字 | 姓氏 | 地址 | 城市 | 州 | 邮政编码 | 家庭电话 | 手机号码 | 出生日期 | 性别 |
    | — | — | — | — | — | — | — | — | — | — | — |
    | TUR8005 | Lynne | Turner | 6 Crowell Ct | South Bend | IN | 46614 | 574 - 245 - 2125 | 574 - 245 - 8842 | 7/24/2002 | F |
    | CHA8034 | Henry | Chang | 1401 Lauren Dr | Oscela | IN | 46561 | 574 - 607 - 3045 | 574 - 674 - 2410 | 10/5/1999 | M |

  11. 调整字段宽度以达到最佳显示效果,然后保存并关闭“学生”表。

  12. 使用导入文本文件向导向“学生”表添加数据。需要导入的数据包含在提供的数据文件的Access1 > 案例2文件夹中的Students文本文件中。操作步骤如下:
    • 指定Students文本文件为数据来源。
    • 选择追加数据的选项。
    • 选择“学生”表。
    • 在导入文本文件向导对话框中,选择导入分隔数据的选项,使用逗号作为分隔符,并将数据导入到“学生”表。不要保存导入步骤。
  13. 在数据表视图中打开“学生”表,必要时调整数据表中的列宽以达到最佳显示效果。然后保存并关闭表。
  14. 在设计视图中创建一个新表,使用以下表设计:
    | 字段名称 | 数据类型 | 描述 | 字段大小 | 其他 |
    | — | — | — | — | — |
    | ContractID | 短文本 | 主键 | 4 | 标题 = 合同ID |
    | StudentID | 短文本 | 外键 | 7 | 标题 = 学生ID |
    | TutorID | 短文本 | 外键 | 7 | 标题 = 导师ID |
    | SessionType | 短文本 | | 15 | 标题 = 课程类型 |
    | Length | 数字 | | 整数 | 小数位数 = 0,标题 = 时长(小时),默认值 = [无条目] |
    | NumSessions | 数字 | | 整数 | 小数位数 = 0,标题 = 课程数量,默认值 = [无条目] |
    | Cost | 货币 | | | 格式 = 货币,小数位数 = 0,默认值 = [无条目] |
    | Assessment | 是/否 | | | 标题 = 评估完成 |

  15. 指定ContractID为主键,然后将表保存为“合同”表。

  16. 在“合同”表的“TutorID”和“SessionType”字段之间添加一个名为“ContractDate”的新字段,数据类型为“日期/时间”,描述为“合同签订日期”,格式为“短日期”,标题为“合同日期”。保存并关闭“合同”表。
  17. 使用导入电子表格向导向“合同”表添加数据。需要导入的数据包含在位于提供的数据文件的Access1 > 案例2文件夹中的Agreements工作簿(Excel文件)中。操作步骤如下:
    • 指定Agreements工作簿为数据来源。
    • 选择将数据追加到表的选项。
    • 选择“合同”表。
    • 在导入电子表格向导对话框中,选择Agreements工作表,确保Access确认第一行包含列标题,然后导入到“合同”表。不要保存导入步骤。
  18. 打开“合同”表并添加以下记录:
    | 合同ID | 学生ID | 导师ID | 合同日期 | 课程类型 | 时长(小时) | 课程数量 | 费用 | 评估完成 |
    | — | — | — | — | — | — | — | — | — |
    | 5168 | LUF8037 | 68 - 8234 | 8/30/2016 | 团体 | 3 | 12 | $1,440 | 是 |
    | 5172 | GOS8029 | 71 - 1698 | 9/7/2016 | 私人 | 2 | 6 | $720 | 是 |

(提示:使用导航按钮中的“新建(空白)记录”按钮添加新记录。)
21. 必要时调整数据表中的列宽以达到最佳显示效果,然后保存并关闭“合同”表。
22. 定义数据库表之间的一对多关系如下:主“学生”表和相关“合同”表之间,以及主“导师”表和相关“合同”表之间。调整表字段列表,使所有字段名称可见。为每个关系选择参照完整性选项和级联更新选项。
23. 保存关系窗口的更改并关闭它,压缩和修复OBrien数据库,然后关闭数据库。

mermaid格式流程图如下:

graph LR
    A[打开OBrien数据库] --> B[打开导师表并设置属性]
    B --> C[添加Groups字段并保存导师表]
    C --> D[指定团体辅导导师并关闭导师表]
    D --> E[导入学生表结构]
    E --> F[添加学生表字段]
    F --> G[修改学生表设计并保存关闭]
    G --> H[添加学生记录]
    H --> I[使用导入向导添加学生数据]
    I --> J[创建合同表并指定主键]
    J --> K[添加ContractDate字段并保存关闭合同表]
    K --> L[使用导入向导添加合同数据]
    L --> M[添加合同记录并保存关闭合同表]
    M --> N[定义表关系]
    N --> O[保存关系窗口并压缩修复数据库]

Access数据库构建与表关系定义全攻略

5. 案例问题操作(续)
5.1 Rosemary Animal Shelter案例

Ryan Lang希望使用Shelter数据库维护其非营利机构的赞助人、动物和捐赠信息。需要完成以下操作:
1. 打开之前创建的Shelter数据库。
2. 在设计视图中打开“赞助人”表,更改以下字段属性:
- PatronID:在描述中输入“主键”,将字段大小更改为5,并在标题中输入“赞助人ID”。
- Title:将字段大小更改为4。
- FirstName:将字段大小更改为20,并在标题中输入“名字”。
- LastName:将字段大小更改为25,并在标题中输入“姓氏”。
- Phone:将字段大小更改为14。
3. 保存并关闭“赞助人”表。当出现可能丢失一些数据的消息时,点击“是”按钮。
4. 使用导入电子表格向导在Shelter数据库中创建一个表。指定位于提供的数据文件的Access1 > 案例3文件夹中的Donations工作簿为数据来源,选择将源数据导入数据库中的新表。
5. 完成导入电子表格向导对话框,操作步骤如下:
- 选择要导入的工作表为Donation。
- 指定第一行包含列标题。
- 接受向导建议的字段选项,不跳过任何字段。
- 选择DonationID作为主键。
- 将数据导入名为“捐赠”的表,不要保存导入步骤。
6. 在数据表视图中打开“捐赠”表,然后删除“需要取货”字段。
7. 在设计视图中打开“捐赠”表,修改表使其与以下设计匹配,包括数据类型、字段名称和字段位置的更改。对于短文本字段,删除格式属性框中指定的任何格式:
| 字段名称 | 数据类型 | 描述 | 字段大小 | 其他 |
| — | — | — | — | — |
| DonationID | 短文本 | 主键 | 4 | 标题 = 捐赠ID |
| PatronID | 短文本 | 外键 | 5 | 标题 = 赞助人ID |
| DonationDate | 日期/时间 | | | 格式 = mm/dd/yyyy,标题 = 捐赠日期 |
| Description | 短文本 | | 30 | |
| DonationValue | 货币 | 美元金额或估计值 | | 格式 = 货币,小数位数 = 2,标题 = 捐赠价值,默认值 = [无条目] |

  1. 保存表设计的更改,当出现关于丢失数据的消息时点击“是”,然后切换到数据表视图。
  2. 调整“捐赠”数据表中的列宽以达到最佳显示效果。
  3. Ryan认为“捐赠价值”列中的值不显示两位小数会更好看。在数据表中将此字段设为当前字段,然后在“字段”选项卡的“格式”组中,使用“减少小数位数”按钮删除这些值的两位小数和小数点。切换回设计视图,注意“捐赠价值”字段的小数位数属性现在设置为0。
  4. 保存并关闭“捐赠”表。
  5. 在设计视图中使用以下表设计创建一个表:
    | 字段名称 | 数据类型 | 描述 | 字段大小 | 其他 |
    | — | — | — | — | — |
    | AnimalID | 短文本 | 主键 | 3 | 标题 = 动物ID |
    | AnimalName | 短文本 | | 15 | 标题 = 动物名称 |
    | Age | 短文本 | | 2 | 标题 = 到达时年龄 |
    | Gender | 短文本 | | 6 | |
    | AnimalType | 短文本 | | 5 | 标题 = 动物类型 |
    | Description | 短文本 | | 60 | |
    | ArrivalDate | 日期/时间 | | | 格式 = 短日期,标题 = 到达日期 |
    | AdoptionDate | 日期/时间 | | | 格式 = 短日期,标题 = 收养日期 |
    | Adopted | 是/否 | | | |
    | PatronID | 短文本 | | 5 | 标题 = 赞助人ID |

  6. 指定AnimalID为主键,将表保存为“动物”表,然后关闭表。

  7. 使用导入文本文件向导向“动物”表添加数据。需要导入的数据包含在提供的数据文件的Access1 > 案例3文件夹中的Animals文本文件中。操作步骤如下:
    • 指定Animals文本文件为数据来源。
    • 选择追加数据的选项。
    • 选择“动物”表。
    • 在导入文本文件向导对话框中,选择导入分隔数据的选项,使用逗号作为分隔符,并将数据导入到“动物”表。不要保存导入步骤。
  8. 在数据表视图中打开“动物”表,调整所有列宽以达到最佳显示效果。
  9. 在设计视图中显示“动物”表。将PatronID字段移动到第二位,并在描述中输入“外键”。然后将“已收养”字段移动到“到达日期”和“收养日期”字段之间。保存修改后的“动物”表设计。
  10. 切换到数据表视图,然后向“动物”表中添加以下记录:
    | 动物ID | 赞助人ID | 动物名称 | 到达时年龄 | 性别 | 动物类型 | 描述 | 到达日期 | 已收养 | 收养日期 |
    | — | — | — | — | — | — | — | — | — | — |
    | B45 | | Gizmo | 12 | 雄性 | 狗 | 猎犬混血 | 3/6/2016 | 否 | |
    | R39 | 38398 | Simba | 3 | 雌性 | 猫 | 暹罗猫 | 4/12/2016 | 是 | 5/14/2016 |

(提示:使用导航按钮中的“新建(空白)记录”按钮添加新记录。)完成后关闭表。
18. 定义数据库表之间的一对多关系如下:主“赞助人”表和相关“动物”表之间,以及主“赞助人”表和相关“捐赠”表之间。(提示:在关系窗口中将“赞助人”表放在中间,以便更轻松地连接表。)调整“动物”字段列表,使所有字段名称可见。为每个关系选择参照完整性选项和级联更新选项。
19. 保存关系窗口的更改并关闭它,压缩和修复Shelter数据库,然后关闭数据库。

mermaid格式流程图如下:

graph LR
    A[打开Shelter数据库] --> B[打开赞助人表并更改属性]
    B --> C[保存并关闭赞助人表]
    C --> D[使用导入向导创建捐赠表]
    D --> E[删除捐赠表字段并修改设计]
    E --> F[保存关闭捐赠表]
    F --> G[创建动物表并指定主键]
    G --> H[使用导入向导添加动物数据]
    H --> I[调整动物表设计并保存]
    I --> J[添加动物记录并保存关闭动物表]
    J --> K[定义表关系]
    K --> L[保存关系窗口并压缩修复数据库]
5.2 Stanley EcoTours案例

Janice和Bill Stanley使用Stanley数据库跟踪其生态旅游业务提供给客户的旅游数据。需要完成以下操作:
1. 打开之前创建的Stanley数据库。
2. 在设计视图中打开“客人”表,更改以下字段属性:
- GuestID:在描述中输入“主键”,将字段大小更改为3,并在标题中输入“客人ID”。
- GuestFirst:将字段大小更改为20,并在标题中输入“客人名字”。
- GuestLast:将字段大小更改为25,并在标题中输入“客人姓氏”。
- Address:将字段大小更改为35。
- City:将字段大小更改为25。
- State/Prov:将字段大小更改为2。
- PostalCode:将字段大小更改为10,并在标题中输入“邮政编码”。
- Country:将字段大小更改为15。
- Phone:将字段大小更改为14。
3. 保存“客人”表,当出现可能丢失一些数据的消息时,点击“是”按钮,在数据表视图中调整“客人名字”和“客人姓氏”列宽以达到最佳显示效果,然后保存并关闭表。
4. 除了导入现有Access表的结构,还可以导入表中包含的数据和结构来创建新表。按以下步骤从Travel数据库导入“旅行”表的结构和数据到Stanley数据库的新表中:
- 启动导入Access表结构的过程。
- 指定位于提供的数据文件的Access1 > 案例4文件夹中的Travel数据库为数据来源。
- 选择将表、查询、表单、报告、宏和模块导入当前数据库的选项按钮。
- 在“导入对象”对话框中,选择“旅行”表,点击“选项”按钮,确保选择正确的选项以导入表的数据和结构(定义)。
- 不要保存导入步骤。
5. 使用导航窗格中的快捷菜单将“旅行”表重命名为“旅游”表,为Stanley数据库中的新表命名。
6. 在设计视图中打开“旅游”表,删除“VIP折扣”字段,然后将“每人价格”字段移动到“国家”和“单人附加费”字段之间。
7. 更改以下属性:
- TourID:在描述中输入“主键”,将字段大小更改为4,并在标题中输入“旅游ID”。
- TourName:在标题中输入“旅游名称”。
- PricePerPerson:在标题中输入“每人价格”。
- SingleSupplement:在描述中输入“单人住宿附加费用”,并在标题中输入“单人附加费”。
- TourType:将字段大小更改为15,并在标题中输入“旅游类型”。
- Nights:在标题中输入“夜数”。
8. 保存修改后的表,当出现可能丢失一些数据的消息时,点击“是”按钮,然后在数据表视图中显示表。调整所有数据表列宽以达到最佳显示效果,然后保存并关闭表。
9. 在设计视图中使用以下表设计创建一个表:
| 字段名称 | 数据类型 | 描述 | 字段大小 | 其他 |
| — | — | — | — | — |
| ReservationID | 短文本 | 主键 | 3 | 标题 = 预订ID |
| GuestID | 短文本 | 外键 | 3 | 标题 = 客人ID |
| TourID | 短文本 | 外键 | 4 | 标题 = 旅游ID |
| StartDate | 日期/时间 | | | 标题 = 开始日期 |
| People | 数字 | 团队中的人数 | 整数 | 小数位数 = 0,默认值 = [无条目] |

  1. 指定ReservationID为主键,然后将表保存为“预订”表。
  2. 参考之前的自定义日期格式,将“开始日期”字段的格式属性更改为类似于05/25/16的自定义格式。保存并关闭“预订”表。
  3. 使用导入文本文件向导向“预订”表添加数据。需要导入的数据包含在提供的数据文件的Access1 > 案例4文件夹中的Bookings文本文件中。操作步骤如下:
    • 指定Bookings文本文件为数据来源。
    • 选择追加数据的选项。
    • 选择“预订”表。
    • 在导入文本文件向导对话框中,选择导入分隔数据的选项,使用逗号作为分隔符,并将数据导入到“预订”表。不要保存导入步骤。
  4. 必要时调整“预订”表数据表中的列宽以达到最佳显示效果,验证“开始日期”字段中的日期值是否根据自定义格式正确显示,然后保存并关闭表。
  5. 定义数据库表之间的一对多关系如下:主“客人”表和相关“预订”表之间,以及主“旅游”表和相关“预订”表之间。(提示:在关系窗口中将“预订”表放在中间,以便更轻松地连接表。)调整“客人”和“旅游”字段列表,使所有字段名称可见。为每个关系选择参照完整性选项和级联更新选项。
  6. 保存关系窗口的更改并关闭它,压缩和修复Stanley数据库,然后关闭数据库。

mermaid格式流程图如下:

graph LR
    A[打开Stanley数据库] --> B[打开客人表并更改属性]
    B --> C[保存并关闭客人表]
    C --> D[导入旅游表结构和数据并重命名]
    D --> E[修改旅游表设计并保存关闭]
    E --> F[创建预订表并指定主键]
    F --> G[更改开始日期字段格式并保存关闭预订表]
    G --> H[使用导入向导添加预订数据]
    H --> I[调整预订表列宽并保存关闭]
    I --> J[定义表关系]
    J --> K[保存关系窗口并压缩修复数据库]

通过以上详细的操作步骤和案例,我们全面了解了Access数据库构建、表关系定义以及数据导入和管理的方法。在实际应用中,可根据具体需求灵活运用这些知识,确保数据库的高效运行和数据的准确管理。

相关推荐

利用MATLAB 4f光学系统,在Python中进行弗劳恩霍夫衍射和傅里叶面滤波——用镜头模拟光学图像处理。.zip

1.版本:matlab2014a/2019b/2024b 2.附赠案例数据可直接运行。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。

利用MATLAB和Excel对逆流双管热交换器的热性能进行分析。.zip

1.版本:matlab2014a/2019b/2024b 2.附赠案例数据可直接运行。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。

利用MATLAB对5G NR波束成形技术的性能分析.zip

1.版本:matlab2014a/2019b/2024b 2.附赠案例数据可直接运行。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。

上市公司赫芬达尔指数、企业勒纳指数(1999-2025年)

上市公司赫芬达尔指数(HHI)和勒纳指数(LI)是衡量市场结构和市场势力(垄断力量)的两个重要指标 赫芬达尔指数(HHI)可衡量一个公司在市场中的相对份额或集中度,通过计算公司在市场中份额的平方和得出。数值越小,说明市场份额分布越分散,竞争程度越高;数值越大,说明市场集中度越高,少数企业占据较大份额,垄断程度越高 勒纳指数(LI)用于衡量企业的市场势力,即企业偏离完全竞争价格、制定高于边际成本的价格的能力,数值越接近1,表示企业市场势力越强,垄断程度越高 本文借鉴刘贯春等(2021)、孙茹峰和李楠博(2024)的思路和方法,分别测算上市公司赫芬达尔指数、勒纳指数: 赫芬达尔指数 = (公司营业收入/同行业同年营业收入合计)的平方和 企业勒纳指数 =(营业收入-营业成本-销售费用-管理费用)/营业收入 一、数据介绍 数据名称:上市公司赫芬达尔指数、企业勒纳指数 数据范围:上市公司 时间范围:1999-2025年 样本数量:85810条 数据来源:上市公司年报 更新时间:2026年11月 数据说明:内含原始数据、测算结果 二、数据指标 股票代码 股票简称 年份 省份 城市 区县 省份代码 城市代码 区县代码 行业代码 行业名称 赫芬达尔指数 勒纳指数 营业收入 营业成本 销售费用 管理费用 三、参考文献 [1]刘贯春,叶永卫,张军.社会保险缴费、企业流动性约束与稳就业——基于《社会保险法》实施的准自然实验[J].中国工业经济,2021,(05):152-169. [2]孙茹峰,李楠博.金融化对企业绿色转型意向的影响研究[J].管理学报,2024,21(11):1612-1620+1677. [3]张倩肖,段义学.数字赋能、产业链整合与全要素生产率[J].经济管理,2023,45(04):5-21. [4]伍兆祥,代吉林,

海康威视后台摄像头视频管理系统

海康威视后台摄像头视频管理系统,vue+py框架

esp-labs-web- 把 ESP32-S3 实验台搬进浏览器:交互式学习指南

esp-labs-web项目把 ESP32-S3 的实验台教程做成了一个网页应用,叫 ESP32 Labs,里面有 32 个动手实验,带实时模拟器、3D 板子、引脚图,还有一个能逐行讲固件的代码阅读器。 每个实验就是一张单子,写着目标、用到的引脚在实时引脚图上的位置、接线、烧录命令和要打勾的步骤,旁边还有个模拟器,能先在浏览器里看到应该出现的效果。 模拟串口也挺像回事,在里面敲个命令,板子会像真固件一样回你,不用先把硬件接好就能先练一遍。 代码阅读器读的是实验真正烧进去的固件,Tour 模式一次只走几行,还先让你猜,Story 模式跟着程序从 setup() 一路往下走,Explore 是点哪行讲哪行,生词一次只给三个,词典还会记住你见过的词。 语言做了 8 种,英法西意德中日阿都有,阿拉伯语还是从右往左排版,手机 390 像素宽也能用,浅色深色、减动效都照顾到了。 里面还有个 3D 的 DevKitC-1 板子,六个标注点一点就亮,还会列出用它的实验,实验台日志就是 public/data 里的一份普通 JSON,改了不用重新编译,学习进度只存在你自己浏览器里,不用注册账号。 实验主题分得挺全,入门、显示和按键、Wi-Fi、RFID、蓝牙、声音都有,传感器那块还是计划中,每个实验的固件都是 esp-labs 里独立的 PlatformIO 工程。

工业互联网工控安全与工业质检AI大模型建设方案.pptx

工业互联网工控安全与工业质检AI大模型建设方案.pptx

通信行业CentOS 7内核网络栈优化:高并发连接下UDP/TCP性能调优与系统资源管理

内容概要:本文聚焦于CentOS 7系统在通信行业高并发场景下的性能调优实践,重点围绕内核网络栈优化展开,涵盖UDP/TCP缓冲区调整、文件句柄与连接跟踪表扩容、TIME_WAIT状态复用、软中断分布优化及tuned工具的自动化调优。通过具体配置参数和实际案例(如VoIP软交换系统)深入解析各项调优措施的设计原理与实施效果,有效解决高CPS下丢包、连接失败等问题,并展望了向云化、eBPF等动态智能调优方向的发展趋势。; 适合人群:从事通信系统运维、网络开发或Linux系统性能优化的技术人员,具备一定操作系统和网络基础知识,工作经验1年以上的中初级工程师。; 使用场景及目标:①应用于软交换、媒体网关、信令网关等高并发通信设备的系统调优;②解决UDP丢包、conntrack表满、TCP连接队列溢出等典型性能瓶颈;③提升系统在小包高频、低时延要求场景下的稳定性和吞吐能力。; 阅读建议:建议结合实际生产环境或测试平台同步验证文中配置,重点关注参数背后的物理意义(如BDP、softirq、conntrack机制),并配合ss、conntrack、dmesg等命令进行调优前后对比分析,确保安全可控地实施变更。

从Elasticsearch的jvm.options读懂JVM参数的生效核验、内存分账与诊断兜底代码包

拿到一台机器和一个 Java 服务,怎样确认 JVM 实际吃进去了哪些参数,怎样给堆和堆外分配内存,怎样把 GC 日志、堆转储、异常栈这些“事后取证”的参数配齐,以及怎样在 JDK 8 与 JDK 9+ 之间安全迁移。 讲解的抓手是 Elasticsearch(下文简称 ES)的 jvm.options。这份文件经过 ES 团队多年打磨,又被无数生产集群验证过,几乎每一行都对应一个踩过的坑,是学习 JVM 参数最好的“样板间”。

2024 《计算机网络》实验教学指导书.doc

2024 《计算机网络》实验教学指导书.doc

不平衡电网下自抗扰顺序模型预测PWM整流器控制仿真模型(Simulink仿真实现)

内容概要:本文围绕面向城市空中交通的多无人机路径规划问题展开研究,提出了一套融合全局规划、动态避障与局部协同调整的综合路径规划方法。研究内容涵盖基于改进RRT算法与图论的全局路径规划、基于动态风险场和动态窗口法(DWA)的模型预测控制实现动态避障,以及基于分布式协同控制的多无人机局部路径协同策略。通过Matlab平台构建仿真环境,在多种典型城市交通场景下对所提方法进行了系统性验证,结果表明该方法在路径安全性、编队稳定性与任务效率方面表现优异。文章还深入探讨了算法的创新点与未来研究方向,为复杂城市环境下多无人机系统的自主协同提供了理论支撑与技术路径。; 适合人群:具备自动化、控制理论、计算机科学或相关领域基础知识,从事无人机系统、智能交通、路径规划、多智能体协同控制等方向研究的研究生、科研人员及工程技术人员。; 使用场景及目标:①为城市空中交通系统中的多无人机安全、高效飞行提供可靠的路径规划解决方案;②支持在复杂、动态的城市场景中开展无人机自主导航、编队飞行与协同控制的技术研究与仿真验证。; 阅读建议:建议结合提供的Matlab代码进行实践操作,重点关注算法的具体实现细节、参数配置对性能的影响以及不同仿真场景下的实验设计,以深入理解各模块的集成逻辑与实际应用效果。

【选址和定容】模拟退火改进多目标粒子群算法在分布式电源选址和定容中的应用【IEEE69节点】(Matlab代码实现)

内容概要:本文研究了模拟退火改进多目标粒子群算法在分布式电源选址和定容中的应用,以IEEE69节点配电系统为算例进行仿真分析。通过融合模拟退火算法的强全局搜索能力与粒子群算法的高效局部收敛特性,构建了一种改进的多目标优化算法,用于解决分布式电源在配电网中的最优位置选择与容量配置问题。研究旨在实现多重优化目标,包括最小化网络有功损耗、提升节点电压质量、增强系统运行的经济性与稳定性。文中详细阐述了多目标优化模型的数学构建、算法的改进机制与实现流程,并基于Matlab平台完成了算法编程与仿真验证,结果表明所提方法在求解质量和收敛性能上均优于传统算法。; 适合人群:具备电力系统分析、优化理论基础及Matlab编程能力,从事配电网规划、分布式能源系统优化、智能优化算法应用等相关领域的科研人员、工程师以及高校研究生。; 使用场景及目标:①解决高比例分布式电源接入背景下配电网的科学规划问题;②为新型电力系统中源网协调设计提供有效的优化工具;③为相关领域的科研工作提供可复现、可拓展的算法模型与仿真代码实例,支持进一步的算法对比与功能升级。; 阅读建议:建议读者结合提供的Matlab代码与IEEE69节点标准数据,动手复现实验结果,深入理解算法的参数设置、迭代过程与多目标折衷分析方法,并可根据实际研究需求修改目标函数或引入新的约束条件以适应不同的应用场景。

无刷直流电机BLDC无感+滑模观测器+转速电流双闭环PI控制(总共三个仿真模型)(Simulink仿真实现)

内容概要:本文档系统性地提供了无刷直流电机(BLDC)的高级控制策略仿真资源,聚焦于无位置传感器控制技术,重点实现了基于滑模观测器(SMO)的转子位置估算方法,并结合转速与电流双闭环PI控制结构,构建了完整的Simulink仿真模型体系。资源包含三个核心仿真模型:无感控制下的滑模观测器设计、双闭环PI控制器的参数整定与动态调节,以及系统整体的运行性能仿真分析。文档深入剖析了滑模观测器在反电动势提取与相位补偿中的关键技术,展示了其在不同工况下对电机启动、调速及负载扰动响应的鲁棒性表现,旨在帮助研究人员掌握BLDC在无传感器条件下的高精度控制实现路径,并为进一步引入模糊PID等先进控制策略提供对比基准与技术支撑。; 适合人群:具备电机控制理论基础、自动控制原理知识及Simulink建模经验,从事电气工程、自动化、电力电子或新能源驱动系统研究的科研人员、工程技术人员及高校研究生。; 使用场景及目标:①深入理解无刷直流电机无位置传感器控制的基本原理与实现流程;②掌握滑模观测器在转子位置与速度估算中的设计方法及其抗干扰特性;③学习并优化转速电流双闭环PI控制结构,提升系统动态响应性能与运行稳定性。; 阅读建议:建议结合Simulink模型进行同步仿真操作,重点关注滑模观测器的抖振抑制效果、系统启动过程的稳定性以及PI参数调节对动态性能的影响,同时可参照文档中提及的模糊PID等对比方案,拓展对先进控制算法的研究与实践应用。

模糊PID与传统PID控制无刷直流电机对比仿真模型(Simulink仿真实现)

内容概要:本文详细介绍了模糊PID与传统PID控制无刷直流电机对比仿真模型的Simulink实现方法,旨在通过仿真手段系统性地对比两种控制策略在无刷直流电机调速系统中的动态性能差异。文章首先阐述了无刷直流电机的数学建模过程,继而深入解析传统PID控制的基本原理,并重点论述模糊PID控制器的设计流程,涵盖模糊规则的构建、隶属度函数的选取以及模糊推理机制的实现。通过构建完整的Simulink仿真模型,对两种控制器在启动响应速度、抗外部干扰能力及稳态控制精度等关键性能指标上进行了全面的对比分析。仿真结果表明,相较于传统PID,模糊PID控制在应对非线性、时变系统时表现出更强的鲁棒性和更高的控制精度,有效提升了系统的整体性能。; 适合人群:具备一定自动控制理论基础和Simulink仿真软件操作经验的高等院校自动化、电气工程等相关专业的学生、科研人员,以及从事电机驱动与控制技术研发的工程师。; 使用场景及目标:①作为教学案例,帮助学生直观理解PID控制与模糊PID控制的核心原理及其在工程实践中的差异;②为科研项目提供一个可靠的控制算法对比与验证的仿真平台;③为工业界在电机控制策略的选型、优化及先进控制算法的工程化应用提供理论依据和技术参考。; 阅读建议:建议读者结合提供的仿真模型文件,亲自动手搭建并调试仿真系统,重点关注控制器参数(如PID增益、模糊规则表、隶属度函数形状)的设置对系统动态响应和稳态性能的影响规律,并可尝试修改模糊控制规则或引入其他智能控制算法(如神经网络控制)进行扩展性研究,以深化对现代控制理论的理解与应用。

VS2022命令行编译C++报错?一招解决‘fatal error C1034: iostream: 不包括路径集‘

本文针对VS2022命令行编译C++时常见的'fatal error C1034: iostream: 不包括路径集'错误,深入剖析了其根源在于环境变量缺失。文章提供了永久配置用户环境变量(PATH、INCLUDE、LIB)的一劳永逸解决方案,确保在任何终端中都能直接使用cl命令进行编译,并给出了进阶配置与常见错误排查指南。

weixin_29011667的博客 303

PyTorch实战:5步搞定Res2Net图像分类模型(附完整代码)

本文详细介绍了如何使用PyTorch在5步内构建高性能Res2Net图像分类模型,包括环境配置、核心模块实现、完整网络架构搭建、训练流程优化及模型部署技巧。Res2Net通过多尺度特征融合机制显著提升图像分类性能,附完整代码帮助开发者快速实践。

java5的博客 1022

产品失效你必须要知道的概念---MTBF、MTTF和FIT

如果我们想知道该电路在10年后仍能正常工作的几率,按照前面例子的相同计算步骤,结果将是90.3%。例如,假设一个TDK电容器的MTBF为6918年(16.5失效时间间隔,FIT),这并不意味着该电容器能持续这么久(显然,没有人能够对部件进行这么长时间的测试)。综上,MTBF和MTTF是用来描述系统或设备级别的故障间隔时间,而FIT是用来描述某单一器件的失效率的单位。MTBF和MTTF使用相同的计算方法,但MTBF用于可维修的产品,而MTTF用于不可维修或维修成本过高的产品。

weixin_49761275的博客 3833

AI辅助Android开发:从传统到智能化的技术演进

AI辅助开发的核心在于利用算法模型自动化或优化传统任务。在Android开发中,AI可应用于需求分析、设计、编码、测试和维护各阶段。需求分析:AI工具如基于NLP的模型(例如GPT系列)可解析用户需求文档,自动生成用户故事和原型设计。假设产品需求为“开发一个航班查询应用”,AI能提取关键词,输出UML图或伪代码。代码生成:使用AI代码助手(如GitHub Copilot),工程师输入自然语言描述,AI生成Java/Kotlin代码片段。

郑伟强dev的专栏 137

SAP S4 HANA:按单生产(MTO)场景中的COGS分割

本文介绍了SAP S/4HANA中提供的各种选项,以在销售订单/商品是按订单生产(以下称为MTO)生产流程中的成本对象时,在基于帐户的COPA环境中报告COGS分割信息。

adam915的博客 1191

【计算机视觉 | MMDetection】关于mmdetection如何计算参数量、计算量和速度FPS

【计算机视觉 | MMDetection】关于mmdetection如何计算参数量、计算量和速度FPS

wzk4869的博客 3021

SAP Event Mesh 简介

Get Started with Messaging for Decoupled Communication Step 1: What is the SAP Event Mesh service? SAP Event Mesh 是一种完全托管的服务,用于连接应用程序、服务和系统,以便它们可以通过消息和事件相互交互。 它通过引入中央消息代理取代了传统的点对点通信。 虽然点对点通信适用于在有限数量的发送方和接收方之间共享数据,但可扩展性很快就会成为一个问题。 SAP Event Mesh 解决了这个问题,并确保

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1240

跨平台商品模型大解析:亚马逊 vs 阿里 vs 拼多多

本文深入探讨了亚马逊、阿里巴巴和拼多多三大电商平台的商品模型设计,分析了它们在变体关系、商品抽象层级和SKU定义等方面的异同。亚马逊模型以物流和变体为中心,强调全球仓配体系下的标准化管理;阿里模型采用多视角的弹性结构,适用于多类目、多品牌、多卖家环境;拼多多模型则结合平台标准化与商家个性化,适合短期促销和快速上新场景。文章还提供了实践建议,帮助自研电商平台或商品中台的开发者选择合适的商品结构,并强调了商品模型在电商系统中的核心作用。通过对比分析,本文旨在为读者提供商品建模的启发和参考。

曾经“等你生日那天”都遥远得像未来,如今却可欢愉的挥手说“下个十年见” 13万+

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

上一篇: 80、构建数据库与定义表关系的实用指南
下一篇: 82、数据库维护与查询:以医疗服务为例
linux6sysadmin
博客等级 码龄4年 59粉丝 1615原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值