n대 n의 관계에서는 '관계테이블'이 필수,
1대 n의 관계에선
n(자식)쪽에 FK를 두면 된다
(단, n(자식)쪽이 먼저 데이터가 생성된다면 FK쪽에 null값이 들어올 수도 있다.
-> 널값을 회피하기 위해 '관계테이블' 활용해도 됨
=> 같은 활용으로 1대1관계에서도 관계테이블을 사용하는 경우가 있음)
[예시]
Orders(자식테이블 多) -< Payment(부모테이블 一) 인 경우,
부모테이블의 데이터가 먼저 발생해야 자식테이블에 있는 FK값이 null 값이 안됨.
단, 논리적으로 자식테이블이 부모테이블보다 먼저 발생되므로
ORDERS 테이블의 FK 칼럼의 속성값이 null값이 올 수 밖에 없다.
이럴 경우 <Payment_Orders> 관계 테이블을 만들어서 null값을 회피해도 되지만,
데이터가 많지 않아, 낭비되는 메모리의 비율이 크지 않다면, 널값을 허용함으로서 orders에 FK값을 주어도 괜찮다
'SQL' 카테고리의 다른 글
프로그래머스 SQL - 상위 퍼센트 대로 나누기 / percent_rank() (0) | 2025.03.27 |
---|---|
SQL기출 오답풀이 (0) | 2024.11.14 |
SQL 깜지 (0) | 2024.10.25 |
[Oracle] 비율함수 (0) | 2024.10.25 |
[oracle sql] 의사 컬럼, 분석 함수, 계층 쿼리 (0) | 2024.10.22 |