У вас, кажется, неправильные отношения
У Class будет первичный ключ ClassID;в классе не должно быть строки с повторяющимся первичным ключом.Класс (в виде таблицы), следовательно, декодирует код вашего класса в имя класса (SNR = Senior Sport Series 1, 50CC = Fifty CC 2 Stroke Cup и т. Д.)
Для райдеров требуется внешний ключ в том столбце Riders.ClassIDссылается на Class.ClassID - столбец Classid в Riders будет иметь повторяющиеся значения (несколько гонщиков принадлежат к одному и тому же классу), но отношение, которое вы хотите применить, заключается в том, что «ни один гонщик не должен входить в неизвестный класс», то есть «ни один гонщик»запись должна иметь значение classid, которого нет в столбце classid таблицы классов "
Следовательно, вы ищете что-то более похожее на:
if exists( select * from sysobjects where name = 'Class')
drop table Class
go
create table Class
(
ClassDescription nvarchar(50) not null,
ClassID nchar(6) not null constraint pk_Class_ClassID primary key(ClassID)
)
go
create table Riders
(
RiderID int not null identity (10,1)
constraint pk_Riders_RiderID primary key(RiderID),
[Name] nvarchar(50) not null,
constraint chk_Riders_Name check (len(Name) > 4),
ClassID nchar(6) not null
constraint fk_Riders_Class foreign key
references Class(ClassID) on delete no action
)
go