복붙노트

[SQL] 어떻게 내 기본 키를 선택?

SQL

어떻게 내 기본 키를 선택?

나는 기본 키 선택에이 읽을 거리를 발견했다.

해결법

  1. ==============================

    1.나는 실제로 자연 키를 사용하여 거의 더 나은 대리 키보다 없다고 생각합니다.

    나는 실제로 자연 키를 사용하여 거의 더 나은 대리 키보다 없다고 생각합니다.

    다음은 기본 키와 같은 자연 키를 사용하여의 주요 단점이 있습니다 :

    기본 키의 데이터 유형이 있어야 할 무엇에 더 열심히 규칙은 없다. 일반적으로 수행하는 더 나은 숫자 키,하지만 당신은 테이블이 크지 특히, 문자열을 사용할 수 있습니다, 그것을 참조하는 테이블 중 큰 수 없습니다.

  2. ==============================

    2.고유성과 minimality : 키는 두 가지 기본적인 기능과 특성의 집합입니다. Minimality은 키 고유성을 보장하기 위해 필요한 속성의 최소 수를 의미합니다.

    고유성과 minimality : 키는 두 가지 기본적인 기능과 특성의 집합입니다. Minimality은 키 고유성을 보장하기 위해 필요한 속성의 최소 수를 의미합니다.

    일반적으로 좋은 키를 선택하는 가이드로 적용되는 세 가지 기준이 있습니다 :

    이 좋은 지침하지만 절대 요구하지 않습니다. 모든 경우에 기능 요구 사항 및 데이터 무결성의 요구는 키를 사용할지 결정해야합니다.

  3. ==============================

    3.나는 자동 생성 INT / BIGINT 데이터 형식으로 구성 종종 비 sensical 키라고 대리 키를 사용합니다.

    나는 자동 생성 INT / BIGINT 데이터 형식으로 구성 종종 비 sensical 키라고 대리 키를 사용합니다.

    다음은이 키를 사용하여 같은 이유 I의 일부입니다.

  4. ==============================

    4.여기에 기본 키에 대한 블로그 게시물의 몇 가지 있습니다 :

    여기에 기본 키에 대한 블로그 게시물의 몇 가지 있습니다 :

    http://www.mysqlperformanceblog.com/2006/10/03/long-primary-key-for-innodb-tables/

    http://www.mysqlperformanceblog.com/2007/03/13/to-uuid-or-not-to-uuid/

  5. ==============================

    5.나는 전문 시스템의 서로 다른 데이터 모델의 많은 (주로 은행 소프트웨어)와 함께 일한 다른 솔루션이 있었다. 이 내가 본 한 GUID 솔루션이고 그렇지 너무 많은 공연 영향을 미친 것 같았다. 나는 "와이드 시스템 고유 번호와 같은 서비스에서 제공하는 번호"를 보았다. 나는 GUID "하지만 짧은"같은 것을 제공하는 알고리즘을 보았다. 나는 비즈니스 키가 빈약 한 디자인과 발생하는 문제이다 (계좌 번호 등)를 사용하고 있었고, 난 그것을 추천하지 않을 것이라고도 볼 수있다. 나는 각 테이블의 자동 증가 키를 보았다.

    나는 전문 시스템의 서로 다른 데이터 모델의 많은 (주로 은행 소프트웨어)와 함께 일한 다른 솔루션이 있었다. 이 내가 본 한 GUID 솔루션이고 그렇지 너무 많은 공연 영향을 미친 것 같았다. 나는 "와이드 시스템 고유 번호와 같은 서비스에서 제공하는 번호"를 보았다. 나는 GUID "하지만 짧은"같은 것을 제공하는 알고리즘을 보았다. 나는 비즈니스 키가 빈약 한 디자인과 발생하는 문제이다 (계좌 번호 등)를 사용하고 있었고, 난 그것을 추천하지 않을 것이라고도 볼 수있다. 나는 각 테이블의 자동 증가 키를 보았다.

    내가 가장 좋아했다? 시스템 전체 수와 같은 서비스가 제공하는 수입니다. 잘 작동한다. 그리고 데이터 객체 경우 동일한 고유 키는 여러 테이블에 적용 할 수 있기 때문에 무엇 고유 번호와 어떤 종류 반드시 테이블 (데이터 객체의를 찾아 (계좌 번호 등) 사용자 키를 사용할 수있는 간단한 키 변환 테이블 하나 그 종류에 따라 서로 다른 테이블)에 분할된다.

    그래서 블로그 또는 뭔가가있다? 그럼 난 그램 Simsion 그레이엄 위트로 "데이터 모델링 필수"라고 추천하는 책이있다. 그들은 내 선호하는 솔루션을 제안하지 않을 수도 있지만 많은 진짜의 예를 제공하고 가능 솔루션의 다른 종류를 표시합니다.

  6. ==============================

    6.나는 항상 기본 키로 UUID를 선택합니다. INT / 긴 키에 비해, 약간의 오버 헤드가 있지만, 많은 이득이있다 : 당신이 형 오버 플로우로 실행할 수 없습니다, 당신은 기본 키를 변경하지 않고, 다른 시스템과의 통합 및 확인이 될 수 있습니다 나중에 데이터베이스 샤딩 수 있습니다 기본 키는 항상 고유, UUID는 추측 할 수없는 등

    나는 항상 기본 키로 UUID를 선택합니다. INT / 긴 키에 비해, 약간의 오버 헤드가 있지만, 많은 이득이있다 : 당신이 형 오버 플로우로 실행할 수 없습니다, 당신은 기본 키를 변경하지 않고, 다른 시스템과의 통합 및 확인이 될 수 있습니다 나중에 데이터베이스 샤딩 수 있습니다 기본 키는 항상 고유, UUID는 추측 할 수없는 등

  7. from https://stackoverflow.com/questions/4291990/how-to-choose-my-primary-key by cc-by-sa and MIT license