您更喜欢在数据库中存储哪一个文本?数据的原始大小,或某种规范化.另外,我应该用触发器强制执行此操作吗?或者我应该使用客户端代码预处理输入数据?
我问你,因为我不确定是否有任何差别,除了显示数据的额外处理时间(例如,名称的大小写).
存储在用户输入的实际大小写中。
作为一名用户,如果我喜欢我的名字 cHriS,我就会这样输入,并且我喜欢这样。我不喜欢该应用程序仅出于某些技术原因而更改它
如果要优化搜索,请使用单独的索引,不要更改数据。
这显然取决于您以后需要对数据执行的操作.
但是如果你因为你对以后加速查找感兴趣(例如按名称,城市等搜索)而感兴趣,你可能想要创建不同的索引,以便将其用于查找:
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)