일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
- 네비게이션 한번에
- 포트번호
- 부트캠프
- element.style
- unnest
- secret코드
- JWT 쓰는 방법
- JWT
- N+1문제
- 알림생성
- 환경변수
- 게시글 이미지
- N+1
- 메뉴바
- 쿼리스트링
- 패스파라미터
- 레포지토리
- 3계층구조
- .env
- JWT 쓰는이유
- JSON Web Token
- route 53
- 이미지가 포함된 게시글
- 알림생성모듈
- 토큰
- 메뉴바 한번에
- 스테이지어스
- 게시글 이미지 업로드
- Winston
- getComputedStyle
- Today
- Total
기주
[postgresSQL] enum 타입 본문
DB에서 enum type은 성별(남,녀) , 요일(월화수목금토일) 과 같이 사용자 정의 타입을 만든다고 생각하면 된다.
DB에서 해당 속성을 enum type으로 지정할 경우 해당 속성은 정해진 값 내에서만 입력이 가능하다.
CREATE TYPE으로 생성한다
예시)
mood타입을 생성하고 이 타입에는 sad, ok, happy만 들어갈 수 있게 만들기
결과)
name | current_mood
------+--------------
Moe | happy (1 row)
enum type 기능 - 순서
enum 타입은 생성될때 순서가 부여되는데 이 순서를 통해 비교연산자, 집계함수를 사용해 비교가 가능하다.
enum에 들어간 인덱스 순서를 갖고 비교한다.
다만, 다른 종류의 enum 타입과는 비교할 수 없다.
그리고 대소문자, 공백등을 구별하므로 헷갈리지 않게 조심한다.
비교연산자 ">" 사용하기)
결과)
name | current_mood
-------+--------------
kiju | happy
Curly | ok
ORDER BY 적용)
name | current_mood
-------+--------------
Curly | ok
kiju | happy
** enum 타입은 새로운 데이터 타입의 추가는 가능하지만, 수정, 삭제는 불편하다.
새로운 enum을 생성해서 거기에 옮겨줘야하기 때문이다.
그래서, enum 타입 대신 별도의 데이터 테이블을 이용해서 관리하는 것이 수정, 삭제도 비교적 자유롭기 때문에 관리하기
편하다
enum 타입을 사용해도 좋은 경우)
1. 유일하고 변하지않는 값을 저장할 경우
2.연관된 정보를 저장할 필요 없는 경우
3. 2개초과, 20개 이하의 데이터를 다루는 경우
ㄴ 2개의 데이터만을 다룬다면 boolean타입을 이용하는 것이 좋다
ㄴㄴgender(male, female) 보다 is_male속성에 true, false로 넣어주기
'TIL' 카테고리의 다른 글
[aws] 프라이빗IP, NAT , CIDR (0) | 2024.02.29 |
---|---|
[DB] DB 모델링 - 소셜 로그인기능 (0) | 2024.02.25 |
[DB] 식별관계와 비식별관계 (0) | 2024.02.19 |
[DB] 트랜잭션 (Transaction) (0) | 2024.02.19 |
[AWS] aws 탄력적IP (0) | 2024.02.07 |