database

RDB에서 foreign key를 사용해야될까?

codeManager 2023. 9. 22. 23:21
반응형

Foreign key는 한 테이블의 컬럼이 다른 테이블의 키를 참조하는 경우 사용됩니다.

 

 

foreign key를 사용하는 이유

FK를 사용하는 이유는 참조 무결성을 위해서입니다.

 

외래키로 지정된 컬럼 데이터가 부모의 기본키 외 다른 값을 가질 수 없기 때문에 

 

DB 자체에서 무결성을 높여주는 장점이 있습니다.

 

foreign key를 사용하지 않는 이유

이론상으로는 FK를 써야하지만 실제로 실무에서는 FK를 잘 사용하지 않는 추세입니다.

 

이유는 데이터 정합성을 따져야 하기 때문에 성능의 이슈가 있을 수 있습니다.

 

또한 스키마 변경시 FK에 의한 제약이 있어 유지보수가 어려운 점이 있습니다.

 

 

 

아래 글을 읽어보시면 도움이 될 것 같습니다.

https://github.com/github/gh-ost/issues/331

 

Thoughts on Foreign Keys? · Issue #331 · github/gh-ost

Hello, Thanks for your hard work on gh-ost! As I familiarize myself with the way it all works, I noted that foreign keys are explicitly not supported, but that they may be to some extent in the fut...

github.com

 
반응형