引用完整性和事务

在像Oracle、Sybase或PostGres这样的软件包中,可以创建明确定义外键的表,可以使数据库系统意识到表中的列和表有关系,这潜在地是一件很好的事情。在网站建设时如果数据库系统意识到存在一种关系,它就进行检查,确保在外键字段中插入的值在引用的表中存在。如果不存在数据库系统就拒绝插入操作,这就称为引用完整性。MySQL的开发者认为引用完整性不是必要的,包括该特性会降低MySQL的速度。

此外,他们认为和数据库作用以便确保插入的数据的正确性是应用程序的责任。这种思路是有道理的,他们没有执行引用完整性或检查方法,也都运行得很好,但是,一般情况下,在这样的应用程序中,所有可能的值都是从数据库中得到的,很少有机会在系统中发生错误,一旦出现错误,没有引用完整性就会有很大的麻烦。

«1»