代码之家  ›  专栏  ›  技术社区  ›  Khorkrak

为什么需要区分大小写的数据库?

  •  8
  • Khorkrak  · 技术社区  · 14 年前

    5 回复  |  直到 14 年前
        1
  •  9
  •   Edmund    14 年前

    有许多具有自然区分大小写的密钥的数据示例:

    • 像Unix这样区分大小写的文件系统中的文件。
    • Base-64编码的名字(我相信这是YouTube正在使用的,就像Artelius的回答一样)。

    SELECT * FROM t WHERE LOWER(name) = 'something';
    

    我注意到在PostgreSQL中(可能在其他系统中),在表达式上创建索引是一件简单的事情 LOWER(name) 将在此类查询中使用。

        2
  •  2
  •   Artelius    14 年前

    取决于要存储的数据。大多数UNIX文件系统都是具有区分大小写的密钥的数据库。YouTube视频似乎是用区分大小写的键组织的。

    大多数情况下,您需要不区分大小写的搜索,但显然存在某些例外。

        3
  •  1
  •   Gert Grenander Keiron Lowe    14 年前

    对字段使用不区分大小写的索引。在大多数情况下,您不希望为了找到数据而操纵数据。

        4
  •  1
  •   nvogel    14 年前

    区分大小写对软件开发人员也很重要。如果您不知道所有客户系统所需的区分大小写能力,那么您可能希望测试区分大小写能力作为测试的一部分。

        5
  •  0
  •   Kirk Broadhurst    14 年前

    应该

    大量数据将在存储过程(数据库正在执行连接)中从数据库中出来,其中区分大小写不是问题。然而,一些数据需要在单独的查询中来自数据库,然后在循环中“缝合在一起”——这主要是由于SQL无法轻松处理的复杂数据类型——这就是问题所在。当我迭代两个结果集并尝试连接“code”时,值 Productcode ProductCode 不自然匹配。

    我不得不修改代码(C#)来进行不区分大小写的字符串匹配,而不是修复数据。记住,不是在整个解决方案中,只是在查看这些“代码”进行匹配时。

    如果我有一个区分大小写的数据库,我会有更整洁的代码。