数据库中的外键(Foreign Key)是用来建立两个表之间关联的一种约束,确保参照完整性。
根据其作用范围和实现方式的不同,可以分为物理外键和逻辑外键。
下面是两者的主要区别:
-
物理外键(Physical Foreign Key):
- 定义:物理外键是在数据库的物理结构中定义的,它是数据库管理系统(DBMS)中的实际约束,可以在创建表或修改表的结构时通过SQL语句明确定义。
- 实现:物理外键的实现依赖于数据库系统,它通过在表定义中设置外键约束来实现。例如,在MySQL中,可以这样定义外键:
CREATE TABLE Orders (OrderID int PRIMARY KEY,CustomerID int,OrderDate date,FOREIGN KEY (CustomerID) REFERENCES Customers(CustomerID) );
-
逻辑外键(Logical Foreign Key):
- 定义:逻辑外键并不是在数据库物理结构中定义的,而是因为存在语法上的逻辑关联而产生的外键。
- 实现:逻辑外键的实现依赖于应用层的代码,需要有连接关键词inner join 或者left join 等等和连接部分,也就是on后面的部分,如果需要对应的设置,也可以加上set等语句。