무결성과 제약 조건 (NULL · NOT NULL)
FK 값이 실제로 존재해야 한다는 참조 무결성과, 값이 반드시 있어야 한다는 NOT NULL 제약을 모았습니다.
참조 무결성(Referential Integrity)
"자식 테이블의 FK 값은 반드시 부모 테이블에 실제로 존재해야 한다"는 규칙입니다. SQLite는 이 검사가 기본적으로 꺼져 있어서, 모든 스크립트 맨 위에 PRAGMA foreign_keys = ON;을 켜야만 이 규칙이 실제로 동작합니다. 이걸 켜지 않으면 존재하지 않는 user_id로도 릴스가 그냥 삽입되어 버립니다.
NULL과 NOT NULL
NULL은 0이나 빈 문자열('')이 아니라 **"값이 아예 없다"**는 뜻입니다. NOT NULL 제약을 걸면 그 컬럼은 반드시 값이 있어야 행이 저장됩니다. 예를 들어 reels.video_url은 NOT NULL이라 영상 URL 없이는 릴스를 등록할 수 없습니다.
정리
| 개념 | 핵심 |
|---|---|
| 참조 무결성 | 자식의 FK 값은 부모에 실제로 존재해야 함. SQLite는 PRAGMA foreign_keys = ON;을 켜야 동작 |
NULL | 0이나 ''가 아니라 "값이 아예 없음" |
NOT NULL | 반드시 값이 있어야 행이 저장됨 (예: reels.video_url) |
출처: Codyssey-B1/B6-1
