我应该以大写还是小写的形式存储数据库中的所有文本?

Ale*_* S. 3 database

您更喜欢在数据库中存储哪一个文本?数据的原始大小,或某种规范化.另外,我应该用触发器强制执行此操作吗?或者我应该使用客户端代码预处理输入数据?

我问你,因为我不确定是否有任何差别,除了显示数据的额外处理时间(例如,名称的大小写).

tlo*_*ach 12

除非有其他原因,否则请保留原始案例.用于大写或小写数据的时间可能非常小,而且您永远不知道将来何时需要真实的原始数据.


Niv*_*vas 8

存储在用户输入的实际大小写中。

作为一名用户,如果我喜欢我的名字 cHriS,我就会这样输入,并且我喜欢这样。我不喜欢该应用程序仅出于某些技术原因而更改它

如果要优化搜索,请使用单独的索引,不要更改数据。


Mat*_*ttK 5

  1. 如果没有迫切需要更改数据,请不要更改数据。
  2. 如果没有令人信服的理由让数据库索引区分大小写,则数据库中的用例不区分大小写。
  3. 花时间担心用户看到什么和想要什么。这将引导您找到答案。


BQ.*_*BQ. 5

这显然取决于您以后需要对数据执行的操作.

但是如果你因为你对以后加速查找感兴趣(例如按名称,城市等搜索)而感兴趣,你可能想要创建不同的索引,以便将其用于查找:

create table case_test (
  id integer,
  name varchar2(30));

create index ucasename on case_test(upper(name));
Run Code Online (Sandbox Code Playgroud)

像此示例的查询将使用不区分大小写的索引作为选择条件,但最初返回带有大小写的名称作为输入:

select * from case_test where upper(name) like 'TUCK%'; 
Run Code Online (Sandbox Code Playgroud)