TIL(Today Ingwang Learned)

TIL) 2023-01-13 (실전 프로젝트)

김코식 2023. 1. 14. 03:19


 

프로젝트에서 내가 맡은 부분의 코드를 짜 놓고 서버 쪽을 공부하려고 했으나기획 단계에서 생각했던 부분과 실제 구현하면서 생각한 부분이 달라지다보니 코드를 수정 할 부분이 굉장히 많아졌다.

내가 맡은 부분에서도 구현을 하면서 생각했던 것 보다 애먹었던 코드들이 많았다.


여러 테이블을 만들고 연관관계를 짓다보니 테이블을 생성하고 코드를 고쳤을 때 테이블 상에서 오류가 발생할 경우에 

 테이블을 삭제하고 다시 생성해야되는데 foreign key의 테이블 연관관계 때문에 삭제 되지 않는 오류가 발생했다.

 

테이블을 foreign key의 제약 조건을 무시하고 삭제하고 싶을 때 

쿼리 콘솔을 열고 순서대로 아래의 값을 입력하고 실행한다.

mysql> SET foreign_key_checks = 0;
mysql> drop table TABLENAME
mysql> SET foreign_key_checks = 1;

 

 SET foreign_key_checks = 0; 의 명령어는 Foreign Key의 제약조건(Constraint)을 끄는 명령어

 drop table TABLENAME 명령어는 TABLENAME의 테이블을 삭제하는 명령어

mysql> SET foreign_key_checks = 1;  Foreign Key의 제약조건(Constraint)을 다시 키는 명령어


테이블을 짜면서 구조를 생각할 때 기본키의 값이 새로 만들어지는 id 값이 아닌 외래키를 기본키로 설정하면 편할 것 같다고 생각이 들어서 찾아보았다

 

외래키를 기본키로 사용하는 법

 

Post의 기본키가 외래키인 User로 join된 것 을 볼 수 있따


코드가 많아지고 테이블이 많아지다보니 연관을 지어 관리해야될 테이블이 많아졌다.

연관 관계를 애매하게 적당히만 이해하고 사용하다 보니 충돌도 많이 났고 오류도 많이 발생한 것 같다..

테이블의 관계에 대해 좀 더 공부를 해보면 좋을 것 같다!