Уникальный индекс или ограничение решит вашу проблему. Уникальные ограничения реализованы в виде уникальных индексов за кулисами, поэтому выбор любого решения тривиален.
Для демонстрации предположим следующий надуманный сценарий.
create table User (
Id int identity primary key,
name varchar(255) not null
);
go
create table Follower (
Id int identity primary key,
UserId int foreign key references User(Id),
FollowerId int foreign key references User(Id)
);
go
Чтобы обеспечить уникальность UserId
& FollowerId
, добавьте следующий уникальный индекс.
create unique index ux_follower_userid_followerid
on Follower
(
UsrId
,FollowerId
);
go
Обратите внимание, что обычно рекомендуется включать некластеризованные индексы в столбцы внешнего ключа для облегчения объединений.