버그성 데이터 지우기를 하며 과도한 외래키 사용으로 문제를 겪고 앞으로는 이런 상황을 방지하기 위해서 질문을 했었다. 멘토님께 듣기로 현업에서는 foreign키를 거의 사용하지 않는다고 한다. 대신 일일이 인덱싱하는 과정을 통해 테이블과 컬럼을 연결한다고 하는데 두 방법의 차이점과 장단점이 무엇일지 궁금해서 알아봤다.
외래키를 사용하여 테이블 간의 관계를 설정하면 데이터베이스에서 자동으로 관련 데이터를 연결하고 유지하는 방법이다.
수동으로 인덱싱하여 관계를 설정하는 방법
외래키 및 CascadeType를 사용하는 방식보다 더 많은 제어를 할 수 있다.
필요한 경우 관련 데이터를 수동으로 로드하고 처리할 수 있다.
성능 면에서는 일부 경우에는 수동 인덱싱이 더 효율적일 수 있다.
외래키 및 CascadeType를 사용하여 관계를 설정하면 편리하고 데이터 일관성을 유지하는 데 도움이 된다. 성능 면에서는 대량의 데이터 처리 시 일부 제약이 있을 수 있다. 수동 인덱싱은 더 많은 제어를 제공하고 성능을 최적화할 수 있지만, 코드 작성과 유지보수에 더 많은 공수가 소요된다.