실무에서 외래키를 사용하지 않는 이유가 궁금합니다.
8874
작성한 질문수 1
안녕하세요, 외래키 내용을 설명해주시면서 실무에서는 외래키를 사용하지 않고, 참조 관계에 있는 테이블만 명시한다고 하셨는데 그 원인이 궁금합니다.
답변 1
2
torch010 님 안녕하세요 :)
외래키를 사용하는 이유는 데이터의 정합성을 유지하기 위해서 사용을 하는데요.
하지만 실무에서는 수작업으로 데이터를 다루는(수정, 생성) 경우가 빈번합니다. 이때 테이블의 관계상 데이터 생성 순서가 맞지 않으면 에러가 발생하기도 하고, 어쩔 수 없이(e.x, 데이터 재생성을 위한 등) 데이터(자식 테이블)를 삭제 하는 경우 CASCADE 옵션이 걸려 있다면 부모 테이블 데이터가 삭제가 되는 참사가 발생하기도 합니다.
문제가 생겨 빠르게 수작업을 처리를 해야 되는 경우에 외래키로 인해서 처리가 늦어질 수도 있고, 작업을 처리하는 개발자의 번거로움이 있습니다.
외래키가 걸려 있는 테이블을 다룰 때 수작업 시 번거로움으로 인해서 외래키를 사용하지 않는 경우가 많습니다 :)
또 다른 이유로는 데이터베이스 설계를 초기에 잘 해놓았더라도 시간이 지나면서 추가 개발과 설계가 수정이 되어 질 수 있습니다. 데이터 정합성을 유지하기 위한 외래키가 이후에는 더 큰 수정 개발을 불러 일으킬 수도 있겠습니다. 외래키를 만들 때는 득과 실을 잘 따져보고 걸어야 되지만 제 경우에는 실제 실무(Spring boot 및 오라클, MY-SQL 기반)에서는 아직까지는 외래키를 생성하는 경우를 본 적이 없습니다.
도움이 되셨으면 좋겠습니다.
감사합니다.
일대일 fk 위치
0
16
1
GROUP BY, HAVING 실습 1번문제
1
15
2
2강에 파일 어디있을까여,,
0
20
2
다음 강의는 언제쯤 나올까요?
0
25
2
땃지님 실습소 DB서버 확인 부탁드립니다
0
22
2
마인드맵 사용 프로그램
0
20
1
엔터티 종류
0
21
2
제 3 정규형 vs BCNF 정규형 차이점?
0
32
3
GROUP BY 시 인덱스를 타지 않는 이유가 궁금합니다
0
22
1
FOREIGN KEY 정리하기, 영상대로 SQL코드 복붙해도 안되요.
0
19
1
모델 서빙과 관련된 강좌 출시 예정된 바가 있으신지 여쭤봅니다!
0
30
2
Vercel 실행이 안됩니다
0
27
2
노션 링크도 안 열리고, 알려준 vercel도 실행이 안됩니다.
0
26
2
코드를 첨부해야하는 이유가 있나요?
0
31
2
간단한 오타 제보입니다.
0
31
1
큰 범위 조회 시 EXPLAIN의 rows 값이 정확하지 않은 이유가 궁금합니다.
0
42
2
실제 FK제약조건을 설정하지 않는이유
0
53
2
Free Edition 실습 영상은 아직 업데이트전인가요?
0
28
1
상품 정보 크롤링
0
31
2
mysql 연결
0
389
1
AWS사용과 슬랙 접속에 어려움이 있습니다
0
336
1
AWS 결제 관련 도움 부탁드립니다.
0
454
1
AWS에서 9만원이 넘는 금액이 결재되었습니다..ㅠㅠ
0
630
2
SQL Error 관련
0
246
1





