在Rails数据库中,字符串应该是下行存储还是保留原样?

时间:2014-03-27 21:49:39

标签: ruby-on-rails

我正在我的数据库中存储街道地址和餐馆名称。每当我返回姓名或地址时,我希望原始案例不受影响。 但是将来我计划在名称和街道地址字段上进行搜索,我不希望搜索区分大小写。

我应该如何最好地存储这些字段?

2 个答案:

答案 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的低位。