2009-03-12 4 views
1

Sagen wir, ich habe eine Datenbank voller Musiker. Stellen Sie sich die folgenden Künstler vor:Anzeige vs Suche vs Sortieren von Strings in einer Datenbank

The Beatles - "The" ist offiziell Teil des Namens, aber wir wollen es nicht mit den "T" s sortieren, wenn wir alphabetisch sortieren. Wir können es nicht einfach als "Beatles, The" speichern, denn dann können wir nicht richtig danach suchen.

Beyoncé - Wir müssen dem Benutzer ermöglichen, nach "Beyonce" (ohne die diakritische Markierung) zu suchen und die richtigen Ergebnisse zurück zu bekommen. Kein Benutzer wird wissen, wie oder wie viel Zeit er braucht, um das spezielle diakritische Zeichen des letzten "e" bei der Suche einzugeben, aber wir möchten es natürlich korrekt anzeigen, wenn wir es ausgeben müssen.

Was ist der beste Weg um diese Probleme zu lösen? Es scheint verschwenderisch, einen "offiziellen Namen", einen "Suchnamen" und einen "Sortierungsnamen" in der Datenbank zu behalten, da eine sehr große Mehrheit der Einträge alle genau gleich sein wird, aber ich kann mir keine anderen vorstellen Optionen.

Antwort

2

Die Bibliothek Wissenschaftler haben eine Standardantwort dafür. Die ALA-Registrierungsregeln decken alle diese Fälle in vollkommen standardmäßiger Weise ab.

Sie sprechen über die grammatische Sortierreihenfolge. Dies ist ein umstrittenes Thema. Einige Leute würden Ihre Position in Frage stellen.

Im Allgemeinen transformieren Sie den Titel in eine normalisierte Form: "Beatles, The". Im Allgemeinen lässt du es so. Dann sortiere.

Sie können hier Regeln Katalogisierung lesen: http://en.wikipedia.org/wiki/Library_catalog#Cataloging_rules

Für „erweiterte“ Zeichen, haben Sie mehrere Möglichkeiten. Für einige Leute ist é ein erstklassiger Brief und das Diakritische gehört dazu. Sie sind nicht verwirrt. Für andere Leute werden alle diakritischen Zeichen auf schmucklose Zeichen abgebildet. Diese Zuordnung ist eine Funktion einiger Unicode-Verarbeitungstools.

können Sie lesen über Unicode diakritische Strippen hier: 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