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

F.19. ISN

theISN모듈은 EAN13, UPC, ISBN (Books), ISMN (Music) 및 ISSN (Serials)의 다음 국제 제품 번호 표준에 대한 데이터 유형을 제공합니다. 젠 토토는 하드 코딩 된 접두사 목록에 따라 입력에서 검증됩니다. 이 접두사 목록은 또한 출력시 젠 토토를 hypenate하는 데 사용됩니다. 새로운 접두사가 수시로 할당되므로 접두사 목록이 구식이 될 수 있습니다. 이 모듈의 향후 버전은 필요에 따라 사용자가 쉽게 업데이트 할 수있는 하나 이상의 테이블에서 접두사 목록을 얻을 수 있기를 바랍니다. 그러나 현재로서는 소스 코드를 수정하고 다시 컴파일하여 목록을 업데이트 할 수 있습니다. 또는이 모듈의 향후 버전에서 접두사 검증 및 하이픈 지원을 삭제할 수 있습니다.

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 (일부는)은 아닙니다.

  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. 캐스트

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

  • 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. 예

-직접 유형 사용 :
SELECT ISBN ( '978-0-393-04002-9');
선택 ISBN13 ( '0901690546');
SELECT ISSN ( '1436-4522');

-캐스팅 유형 :
- EAN13에서 다른 유형으로 만 캐스트 할 수 있습니다.
- 숫자는 대상 유형의 영역에서 유효합니다.
- 따라서 다음은 작동하지 않습니다 : select isbn (ean13 ( '0220356483481'));
- 그러나 이것들은 다음과 같습니다.
UPC를 선택합니다 (EAN13 ( '0220356483481'));
EAN13 (UPC ( '220356483481'));

-ISBN 번호를 고정하기 위해 단일 열이있는 테이블을 만들어냅니다.
테이블 테스트 생성 (id isbn);
테스트 값에 삽입 ( '9780393040029');

-아파트 원자가 체크 숫자를 계산합니다 ( '?'를 관찰) :
테스트 값에 삽입 ( '220500896?');
테스트 값에 삽입 ( '978055215372?');

ISSN ( '3251231?')을 선택하십시오.
ISMN ( '979047213542?');

-약한 모드 사용 :
ISN_WEAK (true)를 선택하십시오.
테스트 값에 삽입 ( '978-0-11-000533-4');
테스트 값에 삽입 ( '9780141219307');
테스트 값에 삽입 ( '2-205-00876-x');
ISN_WEAK (false)를 선택하십시오.

is_valid (id)가 아닌 테스트에서 ID를 선택하십시오.
업데이트 테스트 세트 ID = make_valid (id) 여기서 id = '2-205-00876-x!';

선택 *에서 테스트;

테스트에서 ISBN13 (ID)을 선택하십시오.

F.19.5. 서지

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

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

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

F.19.6. 작가

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

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