首页 > 解决方案 > 将 MySQL 数据库链接到 MS Access 时如何包含关系?

问题描述

我在 MySQL 中有一个包含大约 40 个表的数据库,其中大多数表之间都有关系。我正在尝试使用用于 CRUD 操作的表单在 MS Access 中构建前端。当我使用 ODBC 连接器将 MySQL 连接到 Access 时,它成功地链接数据库并允许更新从 Access 反映到 MySQL Workbench,反之亦然,但是在 Access 的表关系视图中,这些关系没有反映。

由于我的印象是拥有这样的关系是一个好主意,我如何将这些关系包含在链接过程中?这样的事情可能吗,还是我必须在 Access 的关系管理器中手动重新添加这些关系?

标签: mysqlms-accessodbcrelationship

解决方案


这样的图表实际上只是漂亮的图片。当您放弃对数据库使用 Access 时,关系等所有内容现在都由实际的数据库系统管理。因此,访问中的关系图和设置不仅被忽略,而且实际上并不重要或改变 MySQL 的运行方式。

我的意思是,如果你有 3 个访问前端(应用程序)都连接到一个 MySQL 系统会发生什么?您现在会拥有 3 组不同的关系并且它们的工作方式都不同吗?现在谁将成为老板并制定和执行这些规则?

因此,您的所有表设计、规则和关系都将由 MySQL 定义、创建和管理。这种设置中的访问只能使用数据,但它有零说和零与 MySQL 或 Oracle,或 SQL 服务器或任何您使用 Access 使用数据的系统有关。

因为 Access 只是数据的消费者,所以它与您在亚马逊上浏览书籍时没有更多的关联。您浏览书籍或使用此类系统中的数据这一事实并不意味着您现在会突然在亚马逊上执行关系和规则。

完全相同的概念适用于 Access。在您采用不同数据库的那一刻,Access 对表设计、关系以及几乎任何其他关于特定品牌“x”数据库系统的工作方式的控制为零。

因此,任何关系设置等都由服务器系统 100% 处理。此时的访问只能消耗数据,并且在关系等方面没有发言权。实际上,访问甚至不知道要发送到 MySQL 或 Oracle 或任何系统的特定和特殊命令,以了解如何构建和设置此类关系。

因此,Access 只能为 Access 设置关系。但是,您可以自由构建表单、报告,甚至构建新查询。查询构建器允许您在多个表之间建立和建立关系,但构建这样的查询从未改变或告诉实际的数据库系统它将如何处理关系,甚至它们将如何设置。

因此,作为此类系统的客户端的 Access 将 100% 尊重此类数据库中的关系设置,而您通过尝试在 Access 中设置关系窗口获得零。你确实得到了一张漂亮的照片,但仅此而已。因此,请使用给定数据库附带的工具和图表工具 - Access 在这件事上根本没有发言权。


推荐阅读