外国密钥级联选项和创建触发器有什么区别



一个项目要求我构建一个Java应用程序,该应用程序允许用户快速创建,更新和删除人工报告(以前是手工完成的)。

我显然需要一个数据库,并在过去一周的研究和慢慢设计中,但似乎不能清楚地定义了什么使外国钥匙级联选择和创建触发器之间的区别。他们有什么不同吗?在我的情况下,只有两种完成相同任务的方法?

我之所

我正在使用MySQL和MySQL Workbench进行建模和最终的远期工程。

触发器可以运行任意代码。您可以通过触发器实现外国密钥(有或没有级联反应)。

外国钥匙(有或没有级联)做一项,具体的,专注的工作。在大多数数据库系统中,您将无法编写比支持外国密钥的代码更有效的触发器(有很多方法可以编写效率较低的触发器)。

特别是对于MySQL,您可能需要考虑它支持多个存储引擎和不同的引擎在支持各种外键功能方面存在差异(请参阅使用FOREIGN KEY约束。如果您打算使用的引擎支持您要使用的功能,然后您别无选择,只能使用触发器。

最新更新