为表执行插入操作时,会根据其父表自动检查外键以确保该值存在。如果它不存在,则插入失败。
我的问题是,仅为了插入数据检查而将值设置为外键是错误的吗?
我正在尝试做的一些书呆子背景:
我正在建立一个摔跤数据库来复习大学以来我忘记的一切。作为一个摔跤迷,我认为把它作为一个话题会保持我的兴趣(而且确实如此)。
Create Table Superstar
(
Superstar_ID Int Not Null Primary Key Identity (100,1),
Employee_ID Int Not Null Foreign Key References Employee(Employee_ID),
Alignment_ID Int Not Null Foreign Key References Alignment(Alignment_ID),
SuperStar_Name Varchar(50) Not Null,
SuperStar_Weight Varchar(50) Not Null,
SuperStar_Height Varchar(50) Not Null,
Billed_From Varchar(50) Not Null,
Active Bit Not Null
)
Create Table Title
(
Title_ID Int Not Null Primary Key Identity(1,1),
Title_Name Varchar(50) Not Null,
Title_Description Varchar(50) Not Null,
**Current_Holder Int Foreign Key References Superstar(Superstar_ID),
Former_Holder Int Foreign Key References Superstar(Superstar_ID),**
Active Bit Not Null
)
Create Table Superstar_Title
(
Superstar_Title_ID Int Not Null Primary Key Identity (1,1),
Title_ID Int Not Null Foreign Key References Title(Title_ID),
Superstar_ID Int Not Null Foreign Key References Superstar(Superstar_ID)
)
对于“Title”表,我将 Current_Holder 和Former_Holder 字段设置为外键,以检查Superstar_ID 在插入时实际存在的Superstar 表。
这是非常错误的吗?仅将外键用于内置检查约束?