행을 안정적으로 식별하는 기본키를 설계합니다.
PRIMARY KEY는 테이블에서 한 행을 유일하게 식별합니다. 이메일 같은 자연키는 업무상 바뀔 수 있어 내부 surrogate key와 UNIQUE 제약을 함께 두는 설계가 흔합니다.
외부에 노출하는 id는 추측 가능성, 분산 생성, 로그 추적 요구에 따라 정수·UUID·ULID 등을 선택합니다.
표시 이름이나 전화번호처럼 변경 가능한 값을 다른 테이블의 참조 키로 사용하지 않습니다.
SQLite의 INTEGER PRIMARY KEY는 내부 rowid와 그대로 연결되는 특별한 컬럼이라, MariaDB·PostgreSQL의 일반적인 자동 증가 기본키와는 저장 방식이 다릅니다.
키가 유일하다는 것과 사용자가 그 행에 접근할 권한이 있다는 것은 별개입니다.
직접 바꿔보세요id 기본키와 email UNIQUE를 가진 users를 만들고 중복을 시험하세요.
실행 버튼을 누르면 결과가 여기에 표시됩니다.