나는 필드 정확히 하나의는 항상 NULL
비해야합니다 세 개의 필드, User
, City
및 Country
와 테이블이있다. 이를 위해 SQL 제약 조건을 사용할 수 있습니까, 아니면 제가하고있는 일을 재고해야합니까?SQL Server 2008 : 제약 조건을 사용할 수 있습니까?
내 데이터베이스는 사용자, 도시 또는 국가에 연결할 수있는 문서를 포함해야합니다. 따라서이 표의 행에는 사용자, 도시 또는 국가에 대한 하나의 문서 만 포함되어 있습니다. 그러나, "첨부 된"엔티티에 상관없이 모든 문서를 검색 할 수 있어야합니다.
내가 세 개의 다른 테이블을 사용하지 않는 이유는 세 곳의 모든 위치에서 문서를 검색 할 때 세 개의 테이블을 JOIN
하는 것을 피고 싶기 때문입니다. 나는 여기서 사용하려고하는 비정규 화의 종류가 성능을 향상시킬 것이라고 생각하지만 확실하지 않습니다.
생각하십니까?
당신이 모두를 알고있는 경우, 사용자와 문서에 대한 CITY? 귀하의 조항은 ** 적어도 하나의 필드는 null이 아니어야 ** **? –
@Raj : 아니요.이 시스템에서는 문서가 이상하게 들리더라도이 세 가지 중 하나에 만 첨부 할 수 있습니다. :) –