假设我有一个充满音乐艺术家的数据库。考虑以下艺术家:
披头士乐队--“这”是正式名称的一部分,但如果我们是按字母顺序排列的话,我们不想把它与“T”排序。我们不能轻易地把它储存为“披头士乐队”,因为那样我们就无法正确地寻找它。
碧昂斯-我们需要让用户能够搜索“碧昂斯”(没有透明标记),并获得适当的结果回来。在搜索时,没有用户知道如何或花费时间在最后一个"e“上键入特殊的diacritcal字符,但是我们显然希望在需要输出它时正确地显示它。
解决这些问题的最佳方法是什么?在数据库中保留“官方名称”、“搜索名称”和“排序名称”似乎是浪费的,因为绝大多数条目都将完全相同,但我想不出任何其他选项。
发布于 2009-03-12 23:34:23
图书馆学的人对此有一个标准的答案。ALA的备案规则以完全标准的方式涵盖了所有这些案件。
你说的是语法排序顺序。这是一个值得商榷的话题。有些人会反对你的立场。
通常,您将标题转换为规范化形式:“披头士,”。一般情况下,你就这样离开。然后分类。
您可以在这里阅读有关编目规则的内容: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
https://stackoverflow.com/questions/640858
复制相似问题