为Access数据表设置关联方式

yumo6661个月前 (03-23)技术文章19

在Access功能区中选择【数据库工具】选项卡=>【关系】=>【关系】,可进入建立数据表之间关联方式的关系设计视图。

接着就弹出了[显示表]对话框,双击要建立关联方式的数据表,将其加入Access关系设计视图。

本例中,添加了4个数据表到“关系设计视图”,要建立各数据表之间的关联方式,首先就需要熟悉各个数据表中的内容。

tp_book_cate,书籍的分类

tp_book_list_tmp,书籍的信息,如书名、出版社等

tp_book_share_tmp,书籍的阅读笔记,如摘录、笔记等

tp_reading_list_tmp,书籍的阅读记录,如开始阅读时间、结束阅读时间等

先选中数据表“tp_book_list_tmp”中的“id”字段,按住鼠标左键,将其拖拽到数据表“tp_book_share_tmp”中的“book_id”字段上,释放鼠标左键,弹出【编辑关系】对话框。

在Access关系设计视图建立的关联关系是直接在Access底层实体数据表之间建立的,是原生关系,这种关系会传递给基于这些实体数据表所创建的查询和窗体。

[编辑关系]对话框中勾选[实施参照完整性]复选框,然后,该复选框下面的两个复选框也变成了可选状态。这两个复选框分别是[级联更新相关字段]和[级联删除相关记录],其功能分别是同步更新相关联的两个字段和同步删除相关联的记录。勾选这两个复选框后,单击[创建]按钮。

如果在创建的过程中有例外信息,按提示进行操作即可。一般会有以下两种情况:

① 主表的引用字段中,找不到唯一的索引。则去主表中设置一个主键,作为主表中记录的唯一性标记,其字段的内容不能有重复和空白。

② 主表中无记录,子表中有记录。如前期将主表中的某本书籍删除了,而子表中该本书籍对应的阅读记录还留着的。这时可以将子表中对应书籍的阅读记录删除即可。

按此方式为其他数据表也建立关联方式,并保存。

当数据表之间的关系建立后,再去打开数据表“tp_book_cate”(主表),就会发现数据表中的每条记录前都出现了一个可展开的“+”,单击“+”可以看到与其关联的数据表“tp_book_list_tmp”(子表)中的相关记录。

验证一下是否真的实现了级联删除和级联更新功能。

在主表和子表中分别录入一条测试数据。

原书籍ID为146,修改为180后,子表的book_id自动变成了180。(级联更新)

在窗体中单击[删除记录]按钮,弹出对话框“指定级联删除的关系将导致该表和相关表中的1记录都被删除”,点击[是]按钮,确认删除。(级联删除)。实现了通过一步删除操作,将两个表中的记录同步删除。

相关文章

thinkphp中是单个表挨个查询还是关联查询更好

在ThinkPHP中选择单表多次查询或关联查询需根据具体场景权衡,以下是关键考量因素及建议:一、单表多次查询的优势与适用场景高并发场景单表查询可减少数据库锁竞争和计算压力,尤其在QPS较高时(如上千级...

【数据库】SQLServer报修表,维修表,反馈表三表连查

大家好,我是雷工!最近参与的一个SCADA项目,客户要求增加设备维保的功能,对设备的报修,维修,反馈过程进行记录查询,进一步提升企业的信息化能力。该过程的实现是通过创建三个表分别记录报修-维修-反馈的...

mariadb数据库给数据配置快捷键-视图和索引

1.视图1.1 什么是视图?视图是基于SQL查询结果的虚拟表。视图本身不存储数据,而是存储查询逻辑。通过视图,可以简化复杂查询、隐藏数据细节、提供数据安全性。场景:你家的电视有几百个频道,但每次你只想...