Django Models의 PrimaryKey는 오직 한개의 Column만 지원하는군요.

 
Daesung Kang

Django Models의 PrimaryKey는 오직 한개의 Column만 지원하는군요. 2시간 삽질하다가 실제 SQL Log까지 찍어보았네요. 휴…

  • Donghyun Cho

    물리적으로 저장되는 순서를 지정하는 것이라서 하나만 존재가능합니다.
    클러스터드 인덱스(Clustered Index)라고 해요.

    Duke Duk Soo Park

    나온다 나온다 하는데 언제나올지는..

    Daesung Kang

    그래서 결국 다른 방법으로 해결했습니다. 지정하려던 PK는 그대로 두고 자동 증가하는 ID하나 추가. 제가 설계하는 방향과 좀 맞진 않지만… 방법이 없네요.

    Donghyun Cho

    궁금해서 그런데 무슨 이유에서 pk가 두 개 필요한거죠? 번호가 서로 달라야 하는건가요? Integer가 아닌 다른 데이터타입을 사용하시나요?

    Daesung Kang

    저는 보통 PK를 해당 row를 정의하는 유일한 것으로 사용합니다. 예를 들면 지하철1호선 서울역=>인천 08:07출발 9012호 열차 4번째 칸에 대한 정의를 할 때 컬럼 두개 9012, 4 로 PK를 지정해서 많이 씁니다. 개발자의 취향차이입니다.

    Duke Duk Soo Park

    저는 보통 Many to Many relation 에서 자주 씁니다. A와 B가 Many to Many 일때는 A의 PK와 B의 PK, 두개의 PK를 엮어서 하나의 PK로 쓰면 구지 따로 ID행을 만들 필요가 없죠.

    Kenial Sookyum Lee

    예전에 그룹에 올라왔던 논의를 링크해 봅니다:
    https://www.facebook.com/groups/django/permalink/877061675663666/

Advertisements