我正在我的数据库中存储街道地址和餐馆名称。每当我返回姓名或地址时,我希望原始案例不受影响。 但是将来我计划在名称和街道地址字段上进行搜索,我不希望搜索区分大小写。
我应该如何最好地存储这些字段?
答案 0 :(得分:2)
没有像Rails database
这样的词
例如,在MySQL中,通过对地址表/列使用不区分大小写的排序规则,可以轻松实现所需的效果。例如utf8_general_ci
就是这样的排序规则 - 实际上所有以ci
结尾的不区分大小写的
通过这种存储数据的整理,您可以轻松搜索数据库,而无需担心字母大小写并保留原始格式。
答案 1 :(得分:0)
首先,您需要从用户角度决定数据是否区分大小写。如果您完全确定要存储的数据不敏感,可能仍然不需要将其存储在案例中,因为即使数据以大小写混合的形式存储在数据库中,仍然可以使用不敏感的搜索。
此外,如果您使用postgresql并需要不敏感的搜索,您可以像这样创建functional index:
CREATE INDEX test1_lower_col1_idx ON test1 (lower(col1));
之后,您可以使用lower(col1)搜索,而不使用postgresql重新计算每个col1的低位。