작성
·
22
0
3:23 (nickname에 unique: true 적용)
다름이 아니라 중복을 허용하지 않을 때 @Column({ unique: true })를 해도 되지만 @PrimaryColumn()을 해도 되지 않나해서 여쭤봅니다!
혼자 리서치해본 바로는 PrimaryColumn은 식별자로써 쓰일 수 있으면 쓰고 @Column({ unique: true})는 식별자로 쓰진 않아도 될 때 적용한다는 얘기를 들었습니다.
그런데 식별자가 많아서 나쁠건 없지 않나? 싶기도 하고 nickname을 식별자로 쓸 가능성도 있으면 좋을거 같기도 해서 PrimaryColumn으로 해도 괜찮을거 같다는 생각이 들었습니다.
PrimaryColumn이 한 테이블에 너무 여러개 존재하면 안 좋다거나 그런 컨벤션이 있는 것일까요?
답변 1
0
안녕하세요!
말씀하신대로 PrimaryColumn은 정의상 "식별자"입니다.
"식별자가 많아서 나쁠게 없다"라고 하셨지만 이건 나쁜게 맞습니다.
정확히 어떤 값이 어떤 필드로 구분되는지 모르기 때문이죠.
일반적으로 "식별자"는 데이터베이스 개념이 아니더라도 단 하나의 유니크한 조합으로 설정합니다.
그래서 테이블에서 여러 칼럼을 동시에 Primary로 잡게되면 각각이 식별자가 되는게 아니라 해당 필드들의 "조합"이 식별자가 됩니다.
감사합니다!