2014-12-15 2 views
2

ID가 부족하다는 것에 대해 바보 같은 생각이 들지만, 여전히 마음이 편합니다. 따라서 서명되지 않은 int를 사용하면 어떤 어려움이 있습니까? 그것이 ID이기 때문에, 음수의 손실은 문제가되지 않습니다.서명되지 않은 ID가없는 이유는 무엇입니까?

+0

* ID이므로 부정적인 숫자의 손실은 문제가되지 않습니다. * '-4'와 같은 것은 식별자가 아닙니다. –

+2

@ ta.speot.is : 아니요. 이는 식별자로 '-4'를 허용 할 _ 필요가 없음을 의미합니다. – SLaks

+0

저는 항상 음수를 ID로 사용한 적이 없습니다. 그 이유는 항상 저조한 디자인으로 보았 기 때문입니다.하지만 틀릴 수 있습니다. – Yemto

답변

5

데이터베이스에서 ID를 제공하는 경우 서명되지 않은 자동 증분을 ID로 사용하는 것이 좋습니다.

걱정할 필요가없는 단점이 있습니다.

  • 고유 객체에게
  • 기록 논리적 시간을 확인 :

    ID는 두 가지 목적을 제공합니다.

이 두 가지는 모두 부호없는 정수로 충족됩니다.

분산 워크로드, uuid 또는 비슷한 것을 사용하는 경우는 드물지만 일반적인 용도로는 자동 증가 부호없는 정수가 좋습니다.

참고 : 일부 데이터베이스는 부호없는 정수 유형 (예 : 적색 편이)을 지원하지 않습니다. 또한 새 테이블을 디자인 할 때 (부호없는) 정수가 저장할 수있는 최대 값을 확인하십시오.

+1

@downvoter 설명해주십시오. 설명되지 않은 downvotes는 단순한 사이트 파괴 행위로 간주되기 쉽다. 이 답변 +1. – EJP

+1

@EJP 나는 이것을 downvoted 사람이 아니지만 내 추측은 "ID와 같이 항상 서명되지 않은 자동 증분을 사용합니다"("인공 대 자연 기본 키"인수와 마찬가지로) 또는 "기록 논리 시간"(항상 증가하는 값을 얻을 수 있다고 보장 할 수는 없기 때문에 - 예를 들어, MyISAM의 AUTO_INCREMENT 열이 주위를 둘러 싸고 삭제 된 ID를 다시 사용할 수있는 경우 등) 당신이 데이터베이스에 의존한다는 것을 당신이 알지 못한다면 그것을 사용하지 마라. –

+0

@AleksiTorhamo 나는 실제적으로 그 (것)들을 진술하는 그런 좋은 이유를 가진 downvoter를 정말로 예상한다. – EJP

관련 문제