2009-08-31 7 views

답변

11

DB 발전기 :

  • 쉽게 확인이
  • 여분의 왕복을 필요로 독특한 있도록
  • 종종 아주 간단합니다 (순서)
  • (당신은 다시 생성 된 ID를 읽을 수 있어야합니다) 트랜잭션이 롤백되면 순서대로 갭이 나타날 수 있습니다 (이것을 지적하기 위해 Kristen 덕택에).

앱 ID 생성기

  • 사용하지 않는 한 (하드
  • 고유하게 (당신이 원하는 경우 예를 들어, 당신은 ID의 개체 유형을 인코딩 할 수 있습니다) 필요한만큼 복잡 할 수 있습니다 당신은 심지어 UUID를가 (많은 데시벨, 인덱스 fragmenta에는 기본적으로 지원 꽤 비용이 없기 때문에 DB

[편집] 이야기하지 않고 ID를 할당 할 수

  • UUID를) 등), 대부분의 애플 리케이션은 DB를 기반으로 발전기를 사용합니다.

  • +0

    감사합니다. Id 생성기를 배치하는 가장 좋은 방법이 있습니까? DB Generator는 나에게 더 쉽게 들립니다. – bastianneu

    +0

    내 편집보기 클러스터링 소프트웨어를 작성하지 않으면 일반적으로 생성기가 DB에 있습니다. –

    +0

    나는이 대답이 가장 마음에 든다. 고려해야 할 중요한 요점들과 함께 간단한 목록을 만든다. 고맙습니다! – bastianneu

    8

    기억해야 할 또 다른 사항은 데이터베이스에 대한 모든 삽입이 응용 프로그램에서 제공되는 것은 아닙니다. 응용 프로그램 기반 GUID를 사용하면 새로운 고객을 확보하고 마지막 공급 업체에서 10 만 개의 레코드를 마이그레이션해야 할 때 큰 상처를줍니다.

    +0

    미안하지만 당신의 대답에서 요점을 얻지 못합니다. 누가 그걸 정리 해줄 수 있니? – bastianneu

    +3

    데이터베이스를 제외하고 식별자를 생성하는 경우 데이터가 위험에 처하게됩니다. – HLGEM

    +1

    +1, 설정 및 상호 작용하는 시스템 수에 따라 데이터베이스의 모든 레코드가 응용 프로그램 내에서 생성되도록 보장 할 수 없습니다. HLGEM에서 제안한대로 일회성 마이그레이션 또는 일괄 적로드 프로세스의 일부로 향후 외부 소스의 데이터를 통합해야하는 경우가 있습니다. 두 경우 모두 귀하의 ID가 응용 프로그램 내에서 오는 경우 해당 레코드를로드하는 것이 훨씬 더 어려울 것입니다. 웹 서비스 또는 다른 종류의 API를 사용할 수도 있지만 성능에 영향을 미칩니다. –

    2

    저는 가장 중요한 점은 귀하의 비즈니스에서 식별자로 유용하게 사용할 수있는 것을 선택하는 것입니다. 예를 들어 DMV는 면허 번호를 카드에 기재하고 지갑을 잊어 버렸을 때 번호를 기억하면 신원을 확인하는 데 사용할 수 있습니다 (예 : 경찰관이 인계받은 경우). 당신은 카드에 UUID를 넣지 않을 것입니다.

    비즈니스의 식별자를 숨기면 많은 혼란을 야기 할 수 있으므로 고객, 고객 또는 비즈니스 파트너에게 신경 쓰지 않는 것을 선택하십시오. 나는 모든 사람이 그것을 암기 할 수 있어야한다고 말하는 것이 아니지만 영수증을보고 있다면 적어도 전화로 누군가에게 그것을 읽을 수 있어야한다.

    성능에 대한 예외는 있지만 물론주의해서 사용해야하며 비즈니스가 식별 할 수있는 식별자와는 관련이 없습니다.

    내 관련 내용보기 blog post

    +0

    좋은 +1 읽기. 해당 링크를 이용해 주셔서 감사합니다 – bastianneu

    +2

    비즈니스 키와 기술 키를 함께 사용하지 마십시오. 식별자는 개체 (예 : 외래 키)를 고유하게 식별하는 기술 키입니다. 인덱스와 잘 어울립니다. 작거나 일관성이 있습니다. 라이센스 번호와 같은 비즈니스 키는 외부에 표시하지만 신뢰할 수는 없으므로 (어떤 방식 으로든 바꿀 수 있고 규칙을 따르지 않으면 서 현실을 따르므로) 기본 키로 사용해서는 안됩니다. 이름 생각하기 : 결혼하면 이름이 바뀔 수 있습니다. 또는 데이터베이스에 생년월일이 같은 두 개의 "John Smith"를 둘 수 있습니다. –

    +0

    @Aaron : "업무용 키와 기술 키를 함께 사용하지 마십시오." 나는 그것들을 혼동하지 않았고 특별히 차이점을 언급했다. @ 아론 : "같은 생년월일로 2 명의 존 스미스가 있습니다"기술적 인 이유가 아닌 새로운 식별자를 발명하는 것이 비즈니스상의 이유입니다. –

    관련 문제