-
TIL 2023.04.27내일배움캠프 2023. 4. 27. 21:53
ERD는 말입니다
- 저연차보다는 고연차의 영역
- 숙련개발자라고판단할수있는척도중하나“현재 어렵고 감 안오는 것 당연한 것이고 잘하는게 더 이상"
ERD 잘 작성하고 싶으시다면
- ‘연습 더하기 연습'
- 식별/비식별, 논리, 추상화와 같은 단어에 쫄지 말 것; 이론과 실제는 별개
- 세상에 널려있는 것이 연습을 위한 공짜 ‘와이어프레임'
- 자신이좋아하는브랜드or도메인위주로연습후기록
PK (Primary Key):
Table에서 반드시 하나만 존재 (유일)
그래서 row의 값을 고유하게 식별 가능대개 정수형태, 번호 혹은 유일한 값
FK (Foreign Key):
다른 테이블의 PK를 참조하는 컬럼
타 테이블 PK 데이터 확보!
PK, FK를 활용하지 않는다면...
- 불필요한 데이터 보유 (데이터 중복)
- 무한으로 증식하는 테이블 컬럼
일대일 관계
- 어느데이터에종속되는데이터가하나만있을때사용
카카오톡에서 프로필은 단 하나였습니다. (하지만 현재는...?)
- 장고에서 일대일관계는 OneToOneField로 구현 가능
보통 ForeignKey with unique=True로 구현,
현재 장고에서는 이렇게 작성하는 것을 추천
일대다 관계
- 장고에서 일대다관계는 Foreign Key로 형성
여러분들이 많이 쓰셨던 그 관계
한명의 유저는 여러개의 계좌를 개설할 수 있습니다.
(내 계좌는 남들과 공유 못함)
다대다 관계
- 제일 이해가 안되는 것 같으면서도 어려운 관계
장고에서는 ManyToManyField를 지원 (한계점을 찾아라)
“일대다 관계 (Foreign Key)”로 양쪽이 연결되어 있는 것을 발견
매니투매니필드 쓰면 가운데 테이블에 칼럼을 만들 수 없기 때문에 양쪽을 일대다 관계로 연결
식별/비식별 관계
- 비식별 관계 란 부모테이블의 기본키가 자식테이블에서 외래키 역할만 하는 관계
- 식별 관계 란 부모테이블의 기본키가 자식테이블에서 외래키 뿐만 아니라 기본키의 역할까지 하는 경우
- 대부분의 관계는 비식별 관계로 처리하게 되는 경향이 있음. (데이터 정합성, 구현/운영의 용이성)
* 그러면 비식별관계에서 on_delete=CASCADE 옵션을 안 적용해줘도 괜찮지 않을까요? - on_delete 옵션의 다양성도 참고해볼 것
models.CASCADE, models.SET_NULL, models.PROTECT 외
'내일배움캠프' 카테고리의 다른 글
WIL 내일배움캠프 7주차 (0) 2023.04.28 TIL 2023.04.28 (0) 2023.04.28 TIL 2023.04.26 (0) 2023.04.26 TIL 2023.04.25 (0) 2023.04.25 TIL 2023.04.24 (0) 2023.04.24