您更喜欢在数据库中存储哪一个文本?数据的原始大小,或某种规范化.另外,我应该用触发器强制执行此操作吗?或者我应该使用客户端代码预处理输入数据?
我问你,因为我不确定是否有任何差别,除了显示数据的额外处理时间(例如,名称的大小写).
除非有其他原因,否则请保留原始案例.用于大写或小写数据的时间可能非常小,而且您永远不知道将来何时需要真实的原始数据.
这显然取决于您以后需要对数据执行的操作.
但是如果你因为你对以后加速查找感兴趣(例如按名称,城市等搜索)而感兴趣,你可能想要创建不同的索引,以便将其用于查找:
create table case_test ( id integer, name varchar2(30)); create index ucasename on case_test(upper(name));
像此示例的查询将使用不区分大小写的索引作为选择条件,但最初返回带有大小写的名称作为输入:
select * from case_test where upper(name) like 'TUCK%';