MySQL数据库中的外键约束详解.pdfVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
[导读 ] 使用 MySQL 开发过数据库驱动的小型 web 应用程序的人都知道,对关系数据库 的表进行创建、 检索、更新和删除等操作都是些比较简单的过程。 理论上, 只要掌握了最常 见的 SQL 语句的用法,并熟悉您选择使用的服务器端脚本语言,就足以应付对 MySQL 表 所需的各种操作了,尤其是当您使用了快速 MyISAM 数据库引擎的时候。但是,即使在最 简单 使用 MySQL 开发过数据库驱动的小型 web 应用程序的人都知道, 对关系数据库的表进 行创建、检索、更新和删除等操作都是些比较简单的过程。理论上,只要掌握了最常见的 SQL 语句的用法, 并熟悉您选择使用的服务器端脚本语言, 就足以应付对 MySQL 表所需的 各种操作了,尤其是当您使用了快速 MyISAM 数据库引擎的时候。但是,即使在最简单的 情况下, 事情也要比我们想象的要复杂得多。 下面我们用一个典型的例子进行说明。 假设您 正在运行一个博客网站,您几乎天天更新,并且该站点允许访问者评论您的帖子。 在这种情况下,我们的数据库模式至少应该包括两个 MyISAM 表,一个用于存放您的 博客文章, 另一个来处理访问者的评论。 很明显, 这两个表之间存在一个一对多的关系,所 以我们要在第二个表中定义一个外键, 以便在更新或者删除数据行时可以保持数据库的完整 性。 像上面这样的应用程序, 不仅维护两个表的完整性是一个严峻的挑战, 而最大的难点在 于我们必须在应用程序级别来维护它们的完整性。这是大部分不要求使用事务的 web 项目 在开发期间所采取的方法,因为 MyISAM 表可以提供出色的性能。 当然, 这样做也是有代价的, 正如我前面所说的, 应用程序必须维护数据库的完整性和 一致性, 这就意味着要实现更复杂的程序设计逻辑来处理各个表之间的关系。 虽然可以通过 使用抽象层和 ORM 模块来简化数据库访问,但是随着应用程序所需数据表的数量的增加, 处理它们所需的逻辑无疑也会随之变得越发复杂。 那么 ,对于 MySQL 来说,有没有数据库级别的外键处理方式来帮助维护数据库完整性的 呢? 幸运的是,答案是肯定的 !MySQL 还可以支持 InnoDB 表,使我们可以通过一种非常简 单的方式来处理外键约束。 这个特性允许我们可以触发器某些动作, 诸如更新和删掉表中的 某些数据行以维护预定义的关系。 凡事有利皆有弊,使用 InnoDB 表的主要缺点是它们的速度要比 MyISAM 慢,尤其是 在必须查询许多表的大规模应用程序中, 这一点尤为明显。 好在较新版本 MySQL 的 MyISAM 表也已支持外键约束。 本文将介绍如何将外键约束应用于 InnoDB 表。此外,我们还将使用一个简单的基于 PHP 的 MySQL 抽象类来创建有关的示例代码 ;当然,您也可以使用自己喜欢的其它服务器端语 言。现在,我们开始介绍如何将外键约束应用于 MySQL 。 使用外键约束的时机 老实说,在 MySQL 中使用 InnoDB 表的时候,不一定非用外键约束不可,然而,为了 外键约束在某些情况下的功用, 我们将通过前面提到的例子的代码进行具体说明。 它包括两 个 MyISAM 表,分别用于存放博客文章和评论。 定义数据库

文档评论(0)

lyf66300 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8020140062000006

1亿VIP精品文档

相关文档