자동 증분 ID가 있는 두 개의 테이블을 기본 테이블로 사용하는 것이 일반적입니다. 열쇠. 그러나 이 두 테이블 간의 관계를 설정하기 위해 세 번째 관계형 테이블을 생성하면 오류가 발생하는 경우가 많습니다. 이는 자동 증가 열 하나만 허용되거나 초기 테이블에서 자동 증가를 제거하면 유형 일치 문제로 인한 외래 키 생성이 방지되기 때문입니다.
몇 가지 근본적인 오해를 해결하는 것이 중요합니다.
관계형 테이블에는 고유한 행이 있어야 하며, 자동 증분 ID를 사용하여 이를 보장할 수는 없습니다. 기본 키. 관계형 테이블을 생성하려면 각 행을 고유하게 식별하는 데이터 속성으로 구성된 실제 기본 키를 식별해야 합니다.
1단계: 실제 기본 키 정의
각 테이블의 행을 고유하게 구별하는 데이터 속성을 식별합니다. 중복 행을 방지하려면 이러한 필드에 고유 제약 조건을 선언하세요.
2단계: ID 필드 제거
고유한 행이 보장되면 불필요한 ID 필드(및 지원 색인)은 불필요해지며 제거될 수 있습니다.
3단계: 연관 생성 테이블
두 개의 기본 테이블을 조인하는 세 번째 테이블에는 두 상위 테이블의 기본 키로 구성된 복합 기본 키가 있어야 합니다. 이렇게 하면 연관 테이블의 고유한 행이 보장됩니다.
user와 sport라는 두 개의 테이블이 있다고 가정합니다. 이들 사이의 관계를 설정하기 위해 세 번째 테이블 user_sport를 생성합니다.
CREATE TABLE user ( user_name CHAR(16) NOT NULL PRIMARY KEY, name_first CHAR(30) NOT NULL, name_last CHAR(30) NOT NULL, birth_date DATE NOT NULL ); CREATE TABLE sport ( sport_code CHAR(4) NOT NULL PRIMARY KEY, name CHAR(30) NOT NULL ); CREATE TABLE user_sport ( user_name CHAR(16) NOT NULL, sport_code CHAR(4) NOT NULL, start_date DATE NOT NULL, PRIMARY KEY (user_name, sport_code), FOREIGN KEY (user_name) REFERENCES user (user_name), FOREIGN KEY (sport_code) REFERENCES sport (sport_code) );
이 예에서는
이러한 원칙에 따라 고유한 행이 있는 관계형 테이블을 생성하고 데이터 무결성을 보장하며 자동 사용으로 인해 발생하는 문제를 방지할 수 있습니다. 증가된 ID를 기본 키로 사용합니다.
위 내용은 자동 증가 ID 없이 관계형 테이블을 올바르게 생성하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!