사용자를 연결하는 관계 테이블을 만들려고합니다.SQL 서버 데이터베이스 열의 고유 한 조합을 만드는 방법
1. id
2. fromuserid
3. touserid
4. state (none, send, accepted, rejected)
내가 /에에서 어떤 쌍 고유해야합니다 제약 조건을 갖고 싶어 :
나는 다음과 같은 구조를 가지고있다. 나는 같은 항목이 있어서는 안된다는 의미입니다.
1, **123,124**, send
2, **124,123**, send
우선 나는! =에서부터 제약 조건을 만들었습니다. 완벽하게 작동합니다 :
CONSTRAINT [CK__FromUserId_ToUserId] CHECK (FromUserId != ToUserId),
그런 다음 고유 한 색인, 제약 조건 등을 만들려고 시도했지만 아무런 도움이되지 않았습니다.
CONSTRAINT [CK_FromUserId_ToUserId_Combination] UNIQUE (FromUserId, ToUserId)
또는
CREATE UNIQUE NONCLUSTERED INDEX [IX_FromUserId_ToUserId_Combination]
ON USERLINKS (FromUserId, ToUserId)
모두 같은 기록을 거부 잘 작동 :
1, 123,124,send
2, 123,124,send
그러나 아무도는 같은 레코드를 거부 작동하지 않습니다 :
이1, 123,124,send
2, 124,123,send
012을 알려주십시오을
다음 "leastId"와 "greatestId"열을 추가 한 다음에 인덱스를 생성 여기에 자신의 말로 대답의 핵심 부분을 바꿔 말할 수 있다면 더 좋을 것입니다. 그렇게하면 정보가 바로 여기에 표시되며 링크 된 페이지가 언젠가 이동하더라도 계속 사용할 수 있습니다. –