집 >데이터 베이스 >MySQL 튜토리얼 >MySQL은 다형성 연관에 대해 조건부 외래 키 제약 조건을 적용할 수 있습니까?
MySQL 조건부 외래 키 제약 조건: 과제 및 해결 방법
데이터베이스 설계에서는 데이터 무결성이 매우 중요합니다. 외래 키 제약 조건은 테이블 간의 관계를 유지하는 데 사용되지만 경우에 따라 특정 열 값을 기반으로 제약 조건을 조건부로 적용해야 할 수도 있습니다. 예를 들어, 블로그 게시물, 사용자 사진 등 다양한 엔터티에 대한 댓글을 저장하는 "댓글" 테이블을 디자인합니다.
MySQL은 조건부 외래 키 제약 조건을 지원합니까?
지원되지 않습니다. MySQL의 외래 키 제약 조건은 단일 테이블을 명시적으로 참조해야 하며, 참조 테이블의 모든 행이 참조 테이블의 일치하는 행을 갖도록 보장해야 합니다. 조건부 제약 조건은 관계형 데이터베이스 디자인의 원칙을 위반합니다.
해결책: 다형성 연관 및 "슈퍼 테이블"
이 문제를 해결하려면 "다형성 연관" 기술을 사용하는 것이 좋습니다. 이 기술에는 외래 키가 참조하는 모든 엔터티의 공통 속성을 저장하는 "하이퍼테이블"을 만드는 작업이 포함됩니다. 이 예에서는 "설명 가능한 엔터티" 테이블을 만듭니다.
<code class="language-sql">CREATE TABLE Commentable ( id SERIAL PRIMARY KEY );</code>
귀하의 항목(예: "블로그 게시물" 및 "사용자 이미지")은 이 하이퍼테이블의 하위 유형이 됩니다.
<code class="language-sql">CREATE TABLE BlogPosts ( blogpost_id INT PRIMARY KEY, -- 注意,此 ID 不是自动生成的 ... FOREIGN KEY (blogpost_id) REFERENCES Commentable(id) ); CREATE TABLE UserPictures ( userpicture_id INT PRIMARY KEY, -- 注意,此 ID 不是自动生成的 ... FOREIGN KEY (userpicture_id) REFERENCES Commentable(id) );</code>
구현 세부정보:
이 접근 방식은 다양한 엔터티 유형을 수용하고 단일 "설명" 테이블에 설명을 저장할 수 있는 유연성을 유지하면서 참조 무결성을 보장합니다.
위 내용은 MySQL은 다형성 연관에 대해 조건부 외래 키 제약 조건을 적용할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!