이 문서는 지원되지 않는 버전의 PostgreSQL을위한 것입니다.
당신은에 대해 같은 페이지를 볼 수 있습니다PostgreSQL : 문서 : 17 : F.20. ISN - 국제 표준 수에 대한 데이터 유형 (젠 토토, EAN, UPC 등)버전 또는 위에 나열된 다른 지원 버전 중 하나입니다.

F.19. ISN

theISN모듈은 EAN13, UPC, ISBN (Books), ISMN (Music) 및 ISSN (Serials)의 다음 국제 제품 번호 표준에 대한 데이터 유형을 제공합니다. 숫자는 하드 코딩 된 접두사 목록에 따라 입력에서 검증됩니다.

F.19.1. 데이터 유형

테이블 F.11ISN모듈.

표 F.11. ISN데이터 유형

데이터 유형 설명
EAN13 유럽 기사 번호, 항상 EAN13 디스플레이 형식으로 표시
ISBN13 새로운 EAN13 디스플레이 형식으로 표시 될 국제 표준 책 번호
ISMN13 새로운 EAN13 디스플레이 형식으로 표시 될 국제 표준 음악 번호
ISSN13 새로운 EAN13 디스플레이 형식으로 표시되는 국제 표준 일련 번호
ISBN 기존 짧은 디스플레이 형식으로 표시 될 국제 표준 책 번호
ISMN 기존 짧은 디스플레이 형식으로 표시 될 국제 표준 음악 번호
issn 기존 짧은 디스플레이 형식으로 표시 될 국제 표준 일련 번호
UPC 범용 제품 코드

일부 참고 사항 :

  1. ISBN13, ISMN13, ISSN13 숫자는 모두 EAN13 숫자입니다.

  2. EAN13 숫자는 항상 ISBN13, ISMN13 또는 ISSN13 (일부 ARE)는 아닙니다.

  3. 일부 ISBN13 숫자를 ISBN으로 표시 할 수 있습니다.

  4. 일부 ISMN13 숫자를 ISMN으로 표시 할 수 있습니다.

  5. 일부 ISSN13 번호는 ISSN으로 표시 될 수 있습니다.

  6. UPC 번호는 EAN13 숫자의 하위 집합입니다 (기본적으로 첫 번째 EAN13입니다0젠 토토).

  7. All UPC, ISBN, ISMN 및 ISSN 번호는 EAN13 숫자로 표시 될 수 있습니다.

내부적으로 이러한 모든 유형은 동일한 표현 (64 비트 정수)을 사용하며 모두 상호 교환 가능합니다. 제어 디스플레이 서식 및 하나의 특정 유형의 젠 토토를 나타내는 입력의 더 엄격한 유효성 검사를 허용하기 위해 여러 유형이 제공됩니다.

theISBN, ISMNissn유형은 가능할 때마다 젠 토토의 짧은 버전 (ISXN 10)을 표시하며 짧은 버전에 맞지 않는 젠 토토에 대한 ISXN 13 형식을 표시합니다. 그만큼EAN13, ISBN13, ISMN13andISSN13유형은 항상 ISXN의 긴 버전 (EAN13)을 표시합니다.

F.19.2. 캐스트

theISN모듈은 다음 유형의 캐스트 쌍을 제공합니다.

  • ISBN13 <=> ean13

  • ISMN13 <=> ean13

  • ISSN13 <=> ean13

  • isbn <=> ean13

  • ISMN <=> ean13

  • issn <=> ean13

  • UPC <=> ean13

  • ISBN <=> ISBN13

  • ISMN <=> ISMN13

  • ISSN <=> ISSN13

출연 할 때EAN13다른 유형의 경우 값이 다른 유형의 도메인 내에 있고 그렇지 않으면 오류가 발생하는 런타임 확인이 있습니다. 다른 캐스트는 단순히 항상 성공할 방사입니다.

F.19.3. 기능 및 운영자

theISN모듈은 표준 비교 연산자와 이러한 모든 데이터 유형에 대한 B- 트리 및 해시 인덱싱 지원을 제공합니다. 또한 몇 가지 특수 기능이 있습니다.테이블 F.12. 이 테이블에서ISN모듈의 데이터 유형 중 하나를 의미합니다.

표 F.12. ISN기능

기능 반환 설명
ISN_WEAK (부울) 부울 약한 입력 모드 설정 (새 설정 반환)
isn_weak () 부울 약한 모드의 현재 상태를 가져옵니다
make_valid (isn) ISN 유효하지 않은 젠 토토를 확인합니다 (유효하지 않은 플래그 지우기)
IS_VALID (ISN) 부울 잘못된 플래그의 존재를 확인합니다

약한모드는 유효하지 않은 데이터를 테이블에 삽입 할 수 있습니다. 잘못된 젠 토토가 잘못되었음을 의미합니다. 젠 토토가 누락 된 것은 아닙니다.

왜 약한 모드를 사용하고 싶습니까? 글쎄, 당신은 당신이 거대한 ISBN 번호 모음을 가지고있을 수 있으며, 이상한 이유로 일부는 잘못된 체크 숫자를 가지고있을 수 있습니다 (아마도 숫자가 인쇄 된 목록에서 스캔되었고 OCR이 숫자가 잘못되었을 것입니다. 아마도 숫자가 수동으로 포착되었을 것입니다 ...

약한 모드를 사용하여 테이블에 유효하지 않은 숫자를 삽입하면 수정 된 체크 숫자와 함께 숫자가 삽입되지만 느낌표 (로 표시됩니다.!) 끝에서0-11-000322-5!. 이 잘못된 마커는로 확인할 수 있습니다.is_valid함수와 함께 지우기make_valid기능.

약한 모드가 아닌 경우에도 유효하지 않은 숫자의 삽입을 강요 할 수도 있습니다.!젠 토토 끝의 문자.

또 다른 특별 기능은 입력 중에 쓸 수 있다는 것입니다?체크 젠 토토 대신에 올바른 체크 젠 토토가 자동으로 삽입됩니다.

F.19.4. 예

-직접 유형 사용 :

F.19.5. 서지

이 모듈을 구현하기위한 정보는 다음을 포함하여 여러 사이트에서 수집되었습니다.

하이픈 화에 사용되는 접두사도 다음과 같이 컴파일되었습니다.

알고리즘 생성 중에 치료를 받았으며 공식 ISBN, ISMN, ISSN 사용자 매뉴얼의 제안 된 알고리즘에 대해 세 심하게 검증되었습니다..

F.19.6. 작가

Germán Méndez Bravo (Kronuz), 2004-2006

이 모듈은 Garrett A. Wollman 's에서 영감을 받았습니다ISBN_ISSN코드.