어제 SQL 공부를 하면서 테이블을 생성한 내용 중 사용자에 대해 개인설정 값을 추가하는 방법에 대해 추가적으로 알아본다.
우선 셋팅 테이블을 생성한다.
-- setting table 생성
create table settings (
id SERIAL PRIMARY KEY, -- PK
private BOOLEAN, -- BOOLEAN : 참 TRUE / 거짓(FALSE)
adding_photos VARCHAR(15),
user_id INTEGER UNIQUE REFERENCES users(id) --FK;개인설정 유저(1:1) / UNIQUE 옵션을 넣어야 한다. 1:1 연결을 위함
) ;
users 테이블과 settings 테이블간의 관계 설정을 위해
settings 테이블에 외부키(FK)를 user_id로 생성을 하였다.
다만, 사용자 세팅은 1명의 사용자당 1개만 존재할 수 있기 때문에 UNIQUE 옵션을 넣어서 1:1 연결규약을 설정한다.
-- 세팅 레코드 추가
insert into
settings(private, adding_photos, user_id)
values
(FALSE, 'MANUAL', 1), --참거짓값은 ''로 하지 않아도 됨
(FALSE, 'AUTO', 2),
(TRUE, 'AUTO', 3);
이렇게 레코드를 추가하였다.
private 컬럼의 경우 boolean 타입으로 컬럼을 생성하였기 때문에 문자열을 ''로 감싸주지 않아도 된다고 한다.
select 문을 이용해서 추가한 데이터를 확인해보자
위와 같이 정상적으로 생성된것을 확인할 수 있다.
여기서 3번 유저에 대한 setting 값을 추가한다는 가정으로 insert 문을 추가해보았다.
-- 추가데이터
insert into
settings(private, adding_photos, user_id)
values
(FALSE, 'MANUAL', 3) ;
이렇게 실행해보니 고유 제약 조건 위반에 대한 에러문구가 노출되는것을 확인하였다.
고유제약 조건을 걸기 위해선 UNIQUE 옵션 꼭 기억하자.
댓글
댓글 쓰기