제약조건이 있는 하위 유형 참조 무결성
배타적 하위 유형
- 기본 유형에 "판별자" 열 구현 어떤 하위 유형 행이 존재하는지 나타냅니다.
- SQL CHECK CONSTRAINT를 사용하여 유효한 판별자 범위(예: 센서의 경우 IN("B", "C", "D"))를 확인하세요.
- 기본 유형은 PK는 고유성을 보장하고 Discriminator는 하위 유형 행의 중복을 방지합니다.
- 하위 유형의 CHECK CONSTRAINT는 User를 호출합니다. 정의된 함수(UDF)는 기본 유형에 PK 판별자가 존재하는지 확인합니다.
- 이렇게 하면 각 PK에 대해 유효한 하위 유형만 존재하는지 확인할 수 있습니다.
- 모든 기본 유형에는 "모든 기본 유형이 있어야 함"이라는 규칙을 시행합니다. 거래 코드가 포함된 하나 이상의 하위 유형.
비독점 하위 유형
- 판별자가 필요하지 않습니다.
- 하위 유형의 존재는 하위 유형 테이블의 존재 확인을 통해 확인됩니다.
- 일반적인 PRIMARY KEY, FOREIGN KEY 및 Range CHECK CONSTRAINT는 비독점을 적절하게 지원합니다. 하위 유형.
배타적 하위 유형에서 잘못된 판별자 업데이트 방지(설명에 대한 응답으로 해결됨)
- ACID SQL 트랜잭션에 개방형 아키텍처 표준을 사용합니다.
- 금지 SQL을 데이터베이스에 직접 업데이트합니다.
- 기본 유형 삽입을 강제합니다. 단일 트랜잭션의 하위 유형.
- Discriminator를 업데이트하기 전에 이전 하위 유형을 명시적으로 삭제하세요.
- 이러한 트랜잭션을 실행할 수 있도록 ROLES 사용자에게만 EXEC 권한을 부여하세요.
이것은 Discriminator 열이 잘못된 업데이트로부터 보호되어 데이터베이스의 무결성이 유지되도록 합니다.
위 내용은 SQL에서 배타적 및 비배타적 하위 유형으로 참조 무결성을 유지하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!