Отображение против поиска против сортировки строк в базе данных - PullRequest
1 голос
/ 13 марта 2009

Допустим, у меня есть база данных исполнителей музыки. Рассмотрим следующих художников:

Битлз - «Официально» является частью названия, но мы не хотим сортировать его с помощью «Т», если мы алфавитизируем. Мы не можем легко сохранить его как «Битлз», потому что тогда мы не сможем найти его должным образом.

Бейонсе - Мы должны позволить пользователю иметь возможность искать «Beyonce» (без диакритического знака) и получать правильные результаты обратно. Никто из пользователей не узнает, как или потратить время на ввод специального диакритического символа на последнем «е» при поиске, но мы, очевидно, хотим, чтобы он отображался правильно, когда нам нужно вывести его.

Как лучше всего обойти эти проблемы? Кажется расточительным сохранять в базе данных «официальное имя», «поисковое имя» и «имя сортировки», поскольку в подавляющем большинстве случаев Все записи будут одинаковыми, но я не могу придумать другие варианты.

1 Ответ

2 голосов
/ 13 марта 2009

У библиотекарей есть стандартный ответ на этот вопрос. Правила подачи документов ALA охватывают все эти случаи совершенно стандартным способом.

Вы говорите о грамматическом порядке сортировки. Это дискуссионная тема. Некоторые люди не согласны с вашей позицией.

Как правило, вы преобразуете заголовок в нормализованную форму: «Битлз, The». Как правило, вы оставляете это так. Тогда сортируй.

О правилах каталогизации можно прочитать здесь: http://en.wikipedia.org/wiki/Library_catalog#Cataloging_rules

Для "расширенных" персонажей у вас есть несколько вариантов. Для некоторых людей буква é - это буква первого класса, а диакритический знак - ее часть. Они не смущены. Для других людей все диакритические символы отображаются на неукрашенные символы. Это отображение является функцией некоторых инструментов обработки Unicode.

Вы можете прочитать о диакритической зачистке Unicode здесь: 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

...