Microsoft SQL Server에서 테이블을 만들 때 실제로 고유하지 않아도 고유 제한 조건을 사용하면 단점이 있습니까?꼭 필요한 것은 아니지만 테이블에 고유 제한 조건을 사용해야합니까?
예로는 사용자 관리 시스템의 역할을 말에 대한 설명은 다음과 같습니다
CREATE TABLE Role
(
ID TINYINT PRIMARY KEY NOT NULL IDENTITY(0, 1),
Title CHARACTER VARYING(32) NOT NULL UNIQUE,
Description CHARACTER VARYING(MAX) NOT NULL UNIQUE
)
내 두려움이 다른 테이블에 자주 삽입을 수행 할 때이 제약 조건을 검증하는 것은 매우 시간이 많이 걸리는 과정이 될 것입니다. 이 제약 조건이 어떻게 검증되는지는 확신 할 수 없지만 매우 효율적인 방법으로 또는 선형 비교로 수행 할 수있는 것처럼 느껴집니다.
Microsoft SQL Server 2008 R2가 실제로 컴파일되고 실행되기 때문에 사실 SQL Server 구문이라고 주장합니다. –
글쎄, 당신 말이 맞아,하지만 그 원래 게시물을 무의미한 렌더링합니다. 다른 테이블의 삽입은이 테이블의 해당 열을 참조하는 FK가있는 경우에만 영향을줍니다. 그리고 그러한 경우, FK는 PK 또는 고유 제한 조건이 해당 열에 존재하도록 요구합니다. 따라서 대답은 다음과 같습니다. 제약 조건 검사를 허용하고 속도를 높이는 고유 한 제약 조건을 피할 수 없습니다. – JotaBe
@Michael J. Gray : 구문은 SQL Server 2008 R2에서 작동하지만 (최대) 열에 대해 고유 인덱스를 만들 수는 없습니다. – JotaBe