Вы просто включаете нужные столбцы.Вот один из методов:
create table services (
servicesid int identity(1, 1) primary key,
bikeid int references bikes(bikeid),
boatid int references boats(boatid),
carid int references cars(carid),
servicenote nvarchar(max),
check ((bikeid is not null and boatid is null and carid is null) or
(bikeid is null and boatid is not null and carid is null) or
(bikeid is null and boatid is null and carid is not null)
)
);
Эта структура позволяет правильно объявлять отношения внешнего ключа.Ограничение check
также гарантирует, что каждая строка взаимодействует только с одним объектом.
Некоторые базы данных поддерживают наследование в таблицах.Это позволит вам объявить «супер» тип для велосипедов, лодок и автомобилей с одинаковым идентификатором.Хотя вы можете сделать это без наследования, это немного громоздко.Для нескольких соединений часто достаточно явных ссылок (хотя это расточительно в том смысле, что пустые значения занимают место на страницах данных).