1. 유니크
- 단일 컬럼의 값이 중복되지 않도록 하는 것이다
username은 그 자체로 UQ(unique) 해야한다.
username에 UQ를 체크하면, 동일한 username은 존재할 수 없고,
같은 username으로 회원가입하려고 하면, 오류메세지를 띄워 다른 username으로 가입하게 할 수 있다.
2. 이중유니크
- 두 개 이상의 컬럼 조합의 값이 중복되지 않도록 하는 것이다.
팔로우와 팔로잉하는 사람은 여러명이 발생할 수 있다.
예를 들면 'abcd' 라는 사람은 'ef'와 'gh'라는 사람을 동시에 팔로우 할 수 있다.
followerId followeeId
'abcd' 'ef'
'abcd' 'gh'
그러므로 followerId는 그 자체로는 중복되어도 상관없다.
예제로는 나타내지 않았지만, followeeId 컬럼도 그 자체로는 중복되어도 상관 없다.
그러나 아래와 같이 중복되어 같은 사람을 또 팔로우한다면 문제가 발생한다.
insert into follow
(followerId, followeeId)
values
(101, 1) ;
insert into follow
(followerId, followeeId)
values
(101, 1) ;
같은사람이 같은사람을 두번 이상 팔로우 할 수 있다면 문제가 발생할 것이므로
(followerId, followeeId) 두 값이 동시에 같은값이 된다면 안된다.
따라서 이중유니크를 설정하기 위해서는 아래에 위치한 Index로 이동해서,
인덱스 이름은 자유롭게 설정하고, Type을 UNIQUE로 바꿔준다음,
Index Columns에서 중복되지 않게 할 컬럼을 체크해준다.
APPLY 하여 적용하면 이중유니크를 설정할 수 있다.
'MySQL' 카테고리의 다른 글
MySQL) 검색할 문자열 찾는 속도 단축하기 (FULLTEXT 설정) (0) | 2024.05.20 |
---|---|
MySQL) now() 와 now() on update now() 차이점 (0) | 2024.05.20 |
MySQL) Instargram (3) : 프론트엔드 개발자에게 보낼 데이터 만들기 (0) | 2024.05.20 |
MySQL) Instargram (2) : 인스타그램 데이터 분석하기 (0) | 2024.05.17 |
MySQL) Instargram (1) : 태그, 좋아요, 팔로우 데이터 입력하기 (0) | 2024.05.17 |