나는 백엔드 개발을 할 때, 데이터베이스 설계의 비중을 높게 가져간다.
(얘가 탄탄해야 나중에 되돌아 갈 일도 없고 그냥 내 마음이 편하다..)
근데 평소와 다르지 않게 외래키 제약을 걸면서 느낀 점이
외래키의 불편한 점
일단 내가 개발을 하면서 느낀 불편한 점을 말해보겠다.
외래키를 걸면 동시에 제약 조건들도 관리를 하게 되는데 이게 양이 많아 지고 데이터베이스에 종속이 되다 보니 오히려 관리가 어려워지는 느낌이 들었다.
이럴 거면 차라리 한번에 애플리케이션 레벨(코드)에서 처리를 하는게 더 관리를 하기 쉬울 것 같았다.
그리고 또한 외래키가 걸려있으면 테이블을 생성하는 순서도 중요해지는데 이게 내가 쓰는 ORM 기술인 JPA 에서는 테이블 생성 순서 제어가 안되는 거 같아서 개발 단계에서 번거로워진다.
코드레벨에서 처리를 꼼꼼하게 하면 문제가 없다.
외래키 처리를 하면 그러한 복잡한 로직에 신경을 쓰지 않아도 되는데 굳이 그래야 할까? 싶을 수도 있는데,
나는 사실 성능상의 이점이 주된 이유가 아니었다.
외래키 제약조건의 장단점
장점
단점