theISN
모듈은 EAN13, UPC, 스포츠 토토 베트맨 (Books), ISMN (Music) 및 ISSN (Serial)의 다음 국제 제품 번호 표준에 대한 데이터 유형을 제공합니다. 숫자는 하드 코딩 된 접두사 목록에 따라 입력에서 검증됩니다. 이 접두사 목록은 또한 출력시 숫자를 hypenate하는 데 사용됩니다. 새로운 접두사가 수시로 할당되므로 접두사 목록이 구식이 될 수 있습니다. 이 모듈의 향후 버전은 필요에 따라 사용자가 쉽게 업데이트 할 수있는 하나 이상의 테이블에서 접두사 목록을 얻을 수 있기를 바랍니다. 그러나 현재로서는 소스 코드를 수정하고 다시 컴파일하여 목록을 업데이트 할 수 있습니다. 또는이 모듈의 향후 버전에서 접두사 검증 및 하이픈 지원을 삭제할 수 있습니다.
이 모듈이 고려됩니다“신뢰할 수있는”생성
현재 데이터베이스의 권한.
테이블 F.10ISN
모듈.
표 F.10. ISN
데이터 유형
데이터 유형 | 설명 |
---|---|
EAN13 |
유럽 기사 번호, 항상 EAN13 디스플레이 형식으로 표시 |
스포츠 토토 베트맨13 |
새로운 EAN13 디스플레이 형식으로 표시 될 국제 표준 책 번호 |
ISMN13 |
새로운 EAN13 디스플레이 형식으로 표시 될 국제 표준 음악 번호 |
ISSN13 |
새로운 EAN13 디스플레이 형식으로 표시 될 국제 표준 일련 번호 |
스포츠 토토 베트맨 |
국제 표준 책 번호는 오래된 짧은 디스플레이 형식으로 표시 될 |
ISMN |
기존 짧은 디스플레이 형식으로 표시 될 국제 표준 음악 번호 |
issn |
기존 짧은 디스플레이 형식으로 표시 될 국제 표준 일련 번호 |
UPC |
범용 제품 코드 |
일부 참고 사항 :
스포츠 토토 베트맨13, ISMN13, ISSN13 숫자는 모두 EAN13 숫자입니다.
EAN13 숫자는 항상 스포츠 토토 베트맨13, ISMN13 또는 ISSN13 (일부 ARE)는 아닙니다.
일부 스포츠 토토 베트맨13 숫자를 스포츠 토토 베트맨으로 표시 할 수 있습니다.
일부 ISMN13 숫자를 ISMN으로 표시 할 수 있습니다.
일부 ISSN13 숫자는 ISSN으로 표시 될 수 있습니다.
UPC 번호는 EAN13 숫자의 하위 집합입니다 (기본적으로 첫 번째 ean13입니다0
숫자).
All UPC, 스포츠 토토 베트맨, ISMN 및 ISSN 번호는 EAN13 숫자로 표시 될 수 있습니다.
내부적으로 이러한 모든 유형은 동일한 표현 (64 비트 정수)을 사용하며 모두 상호 교환 가능합니다. 제어 디스플레이 서식을 제어하고 하나의 특정 유형의 숫자를 나타내는 입력의 유효성 검사를 더 강하게 할 수 있도록 여러 유형이 제공됩니다.
the스포츠 토토 베트맨
, ISMN
및issn
유형은 가능할 때마다 짧은 버전 (ISXN 10)을 표시하며 짧은 버전에 맞지 않는 숫자에 대한 ISXN 13 형식을 표시합니다. 그만큼EAN13
, 스포츠 토토 베트맨13
, ISMN13
andISSN13
유형은 항상 ISXN의 긴 버전 (EAN13)을 표시합니다.
theISN
모듈은 다음의 유형 캐스트 쌍을 제공합니다.
스포츠 토토 베트맨13 <= ean13
ISMN13 <= ean13
ISSN13 <= ean13
스포츠 토토 베트맨 <= ean13
ISMN <= ean13
issn <= ean13
UPC <= ean13
스포츠 토토 베트맨 <= 스포츠 토토 베트맨13
ISMN <= ISMN13
ISSN <= ISSN13
출연 할 때EAN13
다른 유형의 경우 값이 다른 유형의 도메인 내에 있고 그렇지 않으면 오류가 발생하는 런타임 확인이 있습니다. 다른 캐스트는 단순히 항상 성공할 방사입니다.
theISN
모듈은 표준 비교 연산자와 이러한 모든 데이터 유형에 대한 B- 트리 및 해시 인덱싱 지원을 제공합니다. 또한 몇 가지 특수 기능이 있습니다.테이블 F.11. 이 테이블에서ISN
모듈의 데이터 유형 중 하나를 의미합니다.
표 F.11. ISN
기능
기능 설명 |
---|
값의 유효하지 않은 점수 플래그를 지 웁니다. |
잘못된 체크 자리 플래그의 존재를 확인합니다. |
약한 입력 모드를 설정하고 새 설정을 반환합니다. 이 기능은 후진 호환성을 위해 유지됩니다. 약한 모드를 설정하는 권장 방법은를 통해입니다. |
약한 모드의 현재 상태를 반환합니다. 이 기능은 후진 호환성을 위해 유지됩니다. 약한 모드를 확인하는 권장 방법은를 통해입니다. |
isn.weak
(부울
) #isn.weak
약한 입력 모드를 활성화하여 확인 숫자가 잘못된 경우에도 ISN 입력 값을 허용 할 수 있습니다. 기본값은거짓
22627_22666
왜 약한 모드를 사용하고 싶습니까? 글쎄, 당신은 당신이 거대한 스포츠 토토 베트맨 번호 모음을 가지고있을 수 있으며, 이상한 이유로 일부는 잘못된 체크 숫자를 가지고있을 수 있습니다 (아마도 숫자가 인쇄 된 목록에서 스캔되었고 OCR이 숫자가 잘못되었을 것입니다. 아마도 숫자가 수동으로 포착되었을 것입니다 ... 어쨌든, 요점은 엉망을 정리하고 싶을 수도 있지만 여전히 데이터베이스의 모든 숫자를 가질 수 있고 외부 도구를 사용하여 데이터베이스에서 유효하지 않은 숫자를 찾아 정보를 확인하고 더 쉽게 확인할 수 있습니다. 예를 들어, 표에서 모든 유효하지 않은 숫자를 선택하려고합니다.
약한 모드를 사용하여 테이블에 유효하지 않은 숫자를 삽입하면 수정 된 체크 숫자와 함께 숫자가 삽입되지만 느낌표 ()가 표시됩니다.!
) 끝에서0-11-000322-5!
. 이 잘못된 마커는로 확인할 수 있습니다.is_valid
함수와 함께 지우기make_valid
기능.
약한 모드에 있지 않을 때에도 마크로 표시된 숫자의 삽입을 강제로 삽입하여!
숫자 끝의 문자.
또 다른 특별 기능은 입력 중에 쓸 수 있다는 것입니다?
체크 숫자 대신에 올바른 체크 숫자가 자동으로 삽입됩니다.
-직접 유형 사용 : SELECT 스포츠 토토 베트맨 ( '978-0-393-04002-9'); 선택 스포츠 토토 베트맨13 ( '0901690546'); SELECT ISSN ( '1436-4522'); -캐스팅 유형 : - EAN13에서 다른 유형으로 만 캐스트 할 수 있습니다. - 숫자는 대상 유형의 영역에서 유효합니다. - 따라서 다음은 작동하지 않습니다 : select isbn (ean13 ( '0220356483481')); - 그러나 이것들은 다음과 같습니다. UPC를 선택합니다 (EAN13 ( '0220356483481')); EAN13 (UPC ( '220356483481')); -스포츠 토토 베트맨 번호를 고정하기 위해 단일 열이있는 테이블을 만들어냅니다. 테이블 테스트 생성 (id isbn); 테스트 값에 삽입 ( '9780393040029'); -아파트 원자가 체크 숫자를 계산합니다 ( '?'를 관찰) : 테스트 값에 삽입 ( '220500896?'); 테스트 값에 삽입 ( '978055215372?'); ISSN ( '3251231?')을 선택하십시오. ISMN ( '979047213542?'); -약한 모드 사용 : isn.weak를 참으로 설정하십시오. 테스트 값에 삽입 ( '978-0-11-000533-4'); 테스트 값에 삽입 ( '9780141219307'); 테스트 값에 삽입 ( '2-205-00876-x'); isn.weak를 거짓으로 설정하십시오. is_valid (id)가 아닌 테스트에서 ID를 선택하십시오. 업데이트 테스트 세트 ID = make_valid (id) 여기서 id = '2-205-00876-x!'; 선택 *에서 테스트; 테스트에서 스포츠 토토 베트맨13 (ID)을 선택하십시오.
이 모듈을 구현하기위한 정보는 다음을 포함하여 여러 사이트에서 수집되었습니다.
하이픈 화에 사용되는 접두사도 다음과 같이 컴파일되었습니다.
알고리즘 생성 중에 치료를 받고 공식 스포츠 토토 베트맨, ISMN, ISSN 사용자 매뉴얼의 제안 된 알고리즘에 대해 세 심하게 검증되었습니다..
Germán Méndez Bravo (Kronuz), 2004–2006
이 모듈은 Garrett A. Wollman 's에서 영감을 받았습니다스포츠 토토 베트맨_ISSN
코드.