todos 테이블, RLS, 트리거 생성 미션 질문드립니다
86
1 asked
정답으로 보여주신 이미지에는 아래와 같이 FK가 설정되어있는 것 같았는데 맞을까요?
profiles.user_id -> auth.users.id (CASCADE) todos.user_id -> auth.users.id (CASCADE) todos.user_id -> profiles.users.id (CASCADE)
todos.user_id -> profiles.users.id를 잇는 FK는 왜 필요한거고, 어떤 의도로 생성하는것인지 궁금합니다
Answer 2
0
안녕하세요, 인프런 AI 인턴입니다. 춘녕녕님.
제시된 관계에서 todos.user_id -> profiles.users.id (CASCADE)로 연결된 외래 키(Foreign Key)는 데이터베이스의 무결성(integrity)을 유지하기 위한 것입니다. 데이터의 consistency를 보장하고 데이터베이스의 구조적 관계를 명확히 하기 위해 외래 키 설정은 중요합니다.
FK의 목적: 외래 키는
todos테이블의user_id가profiles테이블의user_id와 일치해야 함을 보장합니다. 이렇게 함으로써todos테이블에 있는 항목들이 이미 존재하는 사용자 프로필에 연결되도록 보장합니다.의도와 효과:
- 데이터 무결성을 유지하여 잘못된 데이터 삽입을 방지합니다.
- 데이터베이스 관계를 명확히 정의하고, 데이터를 조작할 때 이를 통해 참조 무결성을 자동으로 관리합니다.
- CASCADE 옵션은 상위 테이블에서 데이터를 삭제하거나 수정할 때, 참조된 하위 테이블의 데이터가 자동으로 삭제되거나 수정되도록 설정합니다.
- 데이터 무결성을 유지하여 잘못된 데이터 삽입을 방지합니다.
이와 관련된 더 깊은 이해는 아래 URL에서 접근하여 기존의 답변들을 참고해보시면 도움이 될 수 있습니다:
- 시퀄라이즈 as 역할 - 시퀄라이즈 모델에서 외래 키와 관계 설정에 대한 논의입니다.
- 질문이 계속생기네요… - 외래 키와 테이블 관계 설정에 대한 구체적인 예시를 제공하는 답변입니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
3강 질문
0
15
1
Substack 1년 제공
1
21
3
특별 학습 자료 프로모션 1년 멤버십 무료 제공 문의드립니다
0
27
2
강의 듣는 중인데,
0
23
1
36강 오탈자가 있는 거 같습니다.
0
20
2
Service Create/Update Record 운용과 Delete Record 미운용의 차이 질문
0
18
1
간단한 오타 제보입니다.
0
19
1
2강 nodejs 3단계 설명 질문
0
33
1
Claude Code + Supabase 보안 대응 방안 Q&A
0
22
1
인가 코드 발급(프론트 vs 백)
0
27
2
큰 범위 조회 시 EXPLAIN의 rows 값이 정확하지 않은 이유가 궁금합니다.
0
34
2
실제 FK제약조건을 설정하지 않는이유
0
35
2
useEffect와 lifecycle문의
0
26
2
Sequence 관련 질문
1
32
2
Image Only Query
1
29
2
프론트엔드 학습 수준 문의
0
37
2
Node 관련 질문입니다
0
27
3
useMutation 적용 후 새로운 글 등록시 content가 안보여요
0
33
2
d-day count소스및 그라비티에서 기술하면 뭔가 내용이 안나오네요
0
21
1
라이브 운영중인 환경의 테이블에 인덱스 추가시 고려사항
0
36
2
리액트 챕터별 코드에서 eslint 설정파일이 없어요
0
47
2
구글 소셜 로그인 후 로그인 시 구글에러
0
25
2
비개발자이고, 바이브코딩을 하는 40대중반 직장인입니다.
0
171
1
감사히 잘 듣겠습니다.
1
101
1

