외래키를 사용하지 않고 ORM 을 활용하는 방식 관련 문의
안녕하세요.
외래키 관련 질문이 있어서 글을 남기게 되었습니다.
제가 다루던 DB 개발 서비스는 대부분 db 구조의 잦은 변경과 중간의 데이터가 꼬이는 경우, 일부 데이터 수정등이 빈번하여,
연관 데이터들 수정의 어려움이 있어, 외래키 조건을 걸지 않고 사용하는 편입니다.
(국내에도 많은 회사가 이런 방식을 선택하는 것으로 알고 있습니다. )
그런데, 장고의 장점인 모델 구조를 제대로 활용하려면, 모델에 외래키 조건을 걸어서 사용해야 하는 것 같은데,
혹시, 외래키 조건을 걸지 않고 장고를 잘 활용할수 있는 방법이 있을지 궁금해서 글을 남기게 되었습니다.
제 생각에는
1. DB 설계는 별도로 하고, 마이그레이션 하지 않은 상태에서 모델에는 외래키가 걸린 것 처럼 동일한 정보를 입력해주는 방법으로 진행하는 방식
2. 장고에서 모델로 개발하더라도, 마이그레이션 이후 -> 실제 DB 에서는 외래키 조건을 제거하는 등의 방식
3. 모델 사용 없이, 직접 QuerySet 을 생성하여 진행하는 방식
3가지 방식으로만 떠오르는데, 실무에서는 만약 외래키 조건 없이 운영을 해야한다고 하면, 어떤식으로 진행되는지 궁금합니다.
감사합니다.
답변 1
1
안녕하세요.
장고의 FK필드는 논리적으로 FK 관계를 활용할 뿐, 물리적으로 FK 임을 강제하지는 않습니다.
models.ForeignKey에 db_constraint=False 를 지정하시면, 마이그레이션 시에 FK 제약을 추가하지 않습니다. 이는 레거시 데이터베이스 연동이나 데이터베이스 샤딩 시에 유용하게 사용할 수 있습니다.
https://docs.djangoproject.com/en/4.0/ref/models/fields/#django.db.models.ForeignKey.db_constraint
화이팅입니다. :-)
안녕하세요.
0
46
1
[OneToOne Field Demo] get_user_model() 메서드를 활용해야 하는 이유?
0
268
1
useEffect 훅에서 else 유무에 따른 결과
0
209
1
useAxios 훅의 dependency array 설정
0
242
1
useEffect에서 변수 업데이트 관련 질문
0
380
1
rest_framework.generics.CreateAPIView의 model 속성 유무
0
264
1
bootstrap4
0
466
4
리뉴얼 강의가 오픈이 되면 기존 강의는 더이상 못보는걸까요
1
358
1
admin form에서 앞선 필드 선택 후 다른 필드 select widget 구성하는 방법
0
570
3
useState는 필수일까요?
0
259
1
python manage.py makemigrations instagram 시 created_at default 오류가 발생합니다.
0
592
4
Django allauth를 사용한 소셜 로그인 시 에러
0
650
1
프로젝트명 변경 뒤, 디버그툴바+디버그모드 사용 시 에러
0
550
2
useLocalStorage() 함수 사용여부
0
224
1
django에 LOGIN_URL = '/accounts/login/'의 의미?
0
445
1
리듀서의 의미 재확인
0
425
1
simple-jwt Refresh Token 사용 노하우
0
895
2
docker compose 를 통한 배포 관련 오류 문의
0
667
1
파이썬 속도 장고 관련 궁금한게 있습니다.
0
360
1
is_like_user
0
230
1
related_name 오류
0
270
1
re_path 오류
0
255
1
re_path url
0
246
1
No post matches the given query
0
656
2





