프로젝트에서 내가 맡은 부분의 코드를 짜 놓고 서버 쪽을 공부하려고 했으나기획 단계에서 생각했던 부분과 실제 구현하면서 생각한 부분이 달라지다보니 코드를 수정 할 부분이 굉장히 많아졌다.
내가 맡은 부분에서도 구현을 하면서 생각했던 것 보다 애먹었던 코드들이 많았다.
여러 테이블을 만들고 연관관계를 짓다보니 테이블을 생성하고 코드를 고쳤을 때 테이블 상에서 오류가 발생할 경우에
테이블을 삭제하고 다시 생성해야되는데 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된 것 을 볼 수 있따
코드가 많아지고 테이블이 많아지다보니 연관을 지어 관리해야될 테이블이 많아졌다.
연관 관계를 애매하게 적당히만 이해하고 사용하다 보니 충돌도 많이 났고 오류도 많이 발생한 것 같다..
테이블의 관계에 대해 좀 더 공부를 해보면 좋을 것 같다!

'TIL(Today Ingwang Learned)' 카테고리의 다른 글
TIL) 2023-01-16(실전 프로젝트) (0) | 2023.01.16 |
---|---|
TIL) 2023-01-14 (실전 프로젝트) (0) | 2023.01.15 |
20232-01-12(실전 프로젝트) (2) | 2023.01.13 |
2023-01-11(실전 프로젝트) (3) | 2023.01.12 |
2023-01-10(실전 프로젝트) (0) | 2023.01.11 |