반응형
Spring JPA(MariaDB) 기본 키가 아닌 여러 개의 키를 외부 키로 사용할 수 있습니까?
A parent table:
int aTableId; (key)
String type;
String category;
B child table:
int bTableId; (key)
String title;
String type;
String category;
제가 하고 싶은 것은 표 A에 존재하는 유형과 범주의 "조합"을 표 B의 유형과 범주의 조합에 대한 외래 키로 만드는 것입니다.
a.type == b.type &&a.type == b.type을 만족해야 표 B에 삽입할 수 있습니다.
다시 한 번 설명해 드리겠습니다.
A parent table
1. type : food, category : fruit
2. type: food, category: vegetables
3. type : person, category : head
부모 테이블에 이러한 조합이 존재하는 경우,
food - fruit
food - vegetables
person - head
위의 조합은 테이블 B에 삽입할 수 있지만,
person - fruit
person - vegetables
food - head
이 조합은 사용할 수 없습니다.
어떻게 하면 제가 원하는 것을 이룰 수 있을까요?
CREATE TABLE parent (
aTableId INT PRIMARY KEY,
type VARCHAR(10) NOT NULL,
category VARCHAR(10) NOT NULL,
UNIQUE KEY (type, category)
);
CREATE TABLE child (
bTableId INT PRIMARY KEY,
title VARCHAR(50) NOT NULL,
type VARCHAR(10) NOT NULL,
category VARCHAR(10) NOT NULL,
FOREIGN KEY (type, category) REFERENCES parent(type, category)
);
상위 테이블의 보조 후보 키를 참조하는 외부 키를 정의할 수 있습니다.이 키를 신뢰할 수 있는 후보 키로 만들어야 합니다. 이 키는 NULL이 아닌 고유해야 하므로 자식 테이블의 각 참조는 부모 테이블의 행 하나만 참조하도록 보장됩니다.
고유 키와 이 키를 참조하는 외부 키에는 여러 열이 있을 수 있습니다.외부 키는 참조하는 후보 키와 동일한 수의 열 및 유형을 가져야 합니다.
언급URL : https://stackoverflow.com/questions/73757880/spring-jpa-mariadb-is-it-possible-to-use-multiple-non-primary-keys-as-foreign
반응형
'programing' 카테고리의 다른 글
ASP.net MVC의 DropDownList에 빈 값 추가 (0) | 2023.06.06 |
---|---|
열에서 일치하는 부분 문자열을 기준으로 데이터 프레임 행 선택 (0) | 2023.06.06 |
ggplot2 꺽은선형 차트는 "geom_path: 각 그룹은 하나의 관측치로만 구성됩니다.그룹 에스테틱을 조정할 필요가 있습니까?" (0) | 2023.06.06 |
파이어스토어의 문서에 하위 컬렉션을 추가하는 방법은 무엇입니까? (0) | 2023.06.06 |
data.frame에 전체 또는 일부 NA(누락 값)가 있는 행을 제거합니다. (0) | 2023.06.06 |