2011-12-22 4 views
2

"레코드 식별"중 전국 ID 하나를 사용하는 시스템을 개발하고있어 쿼리를 쉽게 작성하기 위해 모든 테이블에 nat_id를 포함시키는 것이 좋습니까? 그렇게하는 것의 단점은 무엇입니까? 나는 중요한 무엇인가 놓칠지도 모르기 때문에 단지 여기에서 사람에게서 의견을 얻고 싶다.기본 키로 내셔널 ID 사용

+5

법적 문제는 물론 개인 정보 보호 문제가 있습니다. – Oded

+1

미국에서 중복 된 SSN의 경우가 있다는 것을 알고 계셨습니까? 다른 것은 제외하고, 그것은 아주 독특한 마법의 숫자가 아닙니다. ... –

+0

@Oded 이것은 동남아시아 국가에서 사용되는 전자 정부 응용 프로그램으로 국가 ID 사용이 널리 보급됩니다. –

답변

8

@Oded가 제안한 것처럼 법률 및 개인 정보 보호에 대한 영향이있을 수 있습니다 (귀하의 국가에 따라 크게 달라질 수 있음).

개인 정보 문제의 한 예로, 일부 국가에서는 생년월일 - 일부 국가에서 성별 -은 주민등록번호의 일부입니다. 이를 스키마의 모든 테이블에 복제하는 것은 좋은 생각이 아닙니다.이 정보에 대한 액세스를 제한하기 어렵 기 때문입니다.

  1. 아니 모든 나라가 국가 ID 시스템을 가지고 있으며, 어떻게 그 사람들은, 다른 형식을 사용 : 그 꼭대기에

    는 여러 순전히 기술적 인 문제가있다. 새 형식을 수용해야 할 때 스키마의 모든 테이블을 변경해야합니까?
  2. 사람들이 국가 신분증 (방문자, 망명자, 무국적자)을 갖고 있지 않은 상황을 상상할 수 있습니다. 어떻게 데이터베이스에 입력합니까?
  3. 일부 국가의 경우 국가 ID와 가장 가까운 것은 ID 카드의 번호이며 ID 카드를 다시 발급하면 번호가 변경됩니다. 즉, 같은 사람이 자신의 삶의 다른 시점에서 다른 ID 번호를 가질 수 있습니다.

저는 대리자 기본 키를 사용하고 국가 ID를 속성으로 저장합니다.

+0

어떻게 대리인이 사람들을 식별 할 수 있습니까? 국가 번호와 같은 자연스러운 열쇠를 대체 할 수는 없습니다. – sqlvogel

+0

@aix 신청은 엄격하게 시민을위한 것입니다. 가능성은 없지만 형식의 변화는 우리가 토론에 가져올 것입니다. 나는 대리자 키의 사용을 향해 기울고 있지만, 나는 국가 ID를 사용하는 직선 쿼리에 대한 아이디어를 좋아한다. –

+0

@dportas 자연스러운 키를 사용하지 않는다는 것을 인정해야합니다. 이것은 그것의 경우 일 수 있습니다. 하지만 먼저 확신해야했습니다. –

2

국가 ID가 좋은 키를 만들지 여부는 주로 요구 사항에 따라 다릅니다. 비즈니스 프로세스의 일부로 국가 ID를 기록해야하며 사용자/직원/누구든 그렇게 고유하게 식별되는 사람입니까? 법적으로 사람들에게 정보를 요청할 자격이 있습니까? 그들은 당신에게 그들의 신분증을 공개해야합니까? 이 모든 경우 예라면 데이터베이스에서 키를 만드는 것이 바람직합니다.

지원해야하는 국가 표준에 대한 표준을 이해했는지 확인하십시오. 예 : 길이, 데이터 유형, 모든 체크 디지트 및 예상 규칙과 일치하지 않는 레거시 코드 또는 기타 특수 목적 코드가 사용 중인지 여부를 나타냅니다.

프라이버시 문제가 있고 데이터베이스에서 실제 ID를 검색 할 필요가없는 경우 대신 국가 ID의 보안 해시를 저장할 수 있습니다.

+1

이것은 전자 정부 응용 프로그램이며 해당 국가에서 많은 유사한 대규모 온라인 응용 프로그램이 있었기 때문에 요구 사항의 일부입니다. 나는 안전한 해시 아이디어 감사를 좋아한다. –

관련 문제