2009-03-12 2 views
1

음악 아티스트가 가득한 데이터베이스가 있다고 가정 해 봅니다. 다음과 같은 아티스트를 고려해보십시오.데이터베이스의 검색 대 정렬 문자열 비교

The Beatles - "The"는 공식적으로 이름의 일부이지만 "알파벳"으로 "T"로 정렬하지 않습니다. 우리는 그것을 "Beatles, The"로 쉽게 저장할 수 없습니다. 왜냐하면 우리는 그것을 올바르게 검색 할 수 없기 때문입니다.

비욘세 - 사용자는 "비욘세"(분음 기호 없음)를 검색하고 올바른 결과를 얻을 수 있도록 허용해야합니다. 어떤 사용자도 검색 할 때 마지막 "e"에 특수 diacritcal 문자를 입력하는 시간이나 방법을 알지 못합니다. 그러나 출력 할 필요가있을 때 정확하게 표시하려고합니다.

이러한 문제를 해결하는 가장 좋은 방법은 무엇입니까? 대다수의 항목이 모두 정확히 같을 것이므로 "공식 이름", "검색 이름"및 "정렬 이름"을 데이터베이스에 유지하는 것은 낭비스러운 것처럼 보입니다. 그러나 다른 어떤 것도 생각할 수 없습니다 옵션.

답변

2

도서관 과학 사람들은 이에 대한 표준 답변을 가지고 있습니다. ALA 신고 규칙은이 모든 경우를 완벽하게 표준으로 다루고 있습니다.

당신은 문법적 정렬 순서에 대해 이야기하고 있습니다. 이것은 논쟁의 여지가있는 주제입니다. 어떤 사람들은 당신의 입장에 문제가 있습니다.

일반적으로 제목을 "Beatles, The"정규화 된 형식으로 변환합니다. 일반적으로, 당신은 그것을 그런 식으로 남겨 둡니다. 그럼 정렬.

현재 목록 규칙에 대해 읽을 수 있습니다 : "확장"문자에 대한 http://en.wikipedia.org/wiki/Library_catalog#Cataloging_rules

, 당신은 몇 가지 선택이있다. 어떤 사람들에게는 é가 1 급 문자이고 발음 구별 부호가 그 일부입니다. 그들은 혼란스럽지 않습니다. 다른 사람들의 경우 분음 문자는 모두 꾸밈없는 문자에 매핑됩니다. 이 매핑은 일부 유니 코드 처리 도구의 기능입니다.

당신은 유니 코드 구별 여기 스트립에 대해 읽을 수 있습니다 http://lexsrv3.nlm.nih.gov/SPECIALIST/Projects/lvg/current/docs/designDoc/UDF/unicode/NormOperations/stripDiacritics.html

http://www.siao2.com/2005/02/19/376617.aspx