사용자 업로드 개체 테이블이 있습니다. 각 사용자는 임의의 수의 개체를 가질 수 있습니다. 나는 각 객체과 같이, 순차적 식별자를 갖고 싶어 : 나는 OBJID에 대한 싶습니다시퀀스 필드, 기본 키/시퀀스 쌍에 대한 개별 시퀀스 추적
USERNAME OBJECTNAME OBJID
Kerin cat 1
Kerin dog 2
Narcolepsy pie_tins 1
Kerin mouse 3
이 시퀀스 수 있지만, 사용자 이름 필드마다 개별적으로 일련 번호를 추적. 먼저 DB를 쿼리하고 가장 높은 OBJID를 선택하고 그 값을 하나씩 증가시키고 내 INSERT에서이를 사용하면 일종의 정렬을 수행 할 수 있습니다. 사용자가 한 번에 두 번의 업로드를 실행하기가 어려울 수 있기 때문에 괜찮습니다. 하지만 쿼리 오버 헤드와 내가 잘못하고 있다는 느낌 때문에 더 나은 방법을 찾고 싶습니다.
첫째, 기본 키가 고유해야 사용자 이름이 내 고유가 아닙니다. 둘째, OBJID가 필요한 것은 어떤 종류입니까? –
내가 틀린 기본 키를 말했을 때, 나는 생각보다 분명히 피곤했습니다. 게시물이 수정되었습니다. OBJID는 객체를 명확하게 참조하는 데 사용됩니다. 이제는이 질문에 대답하려고합니다. 식별자가 순차적이어야하는 이유가 더 이상 확실하지 않습니다. 필드가 손상 될 수 있는지 확인하고 있습니다. 간단한 UUID. –
이들이 순차적 일 필요가 없다면 아마도 테이블에'serial' (또는'bigserial') 타입의 PK를 추가 할 수 있습니다. 숫자는 여전히 사용자마다 고유 할 수 있지만 구현하기가 쉽지 않으며 UUID의 추악함을 가지지 않습니다. –