你更喜欢在数据库中存储文本的哪一个?数据的原始外壳,或者某种标准化。另外,我应该用触发器强制执行此操作吗?还是应该使用客户端代码预处理输入数据?我应该用大写还是小写将所有文本存储在数据库中?
我问你,因为我不确定是否有任何区别,除了额外的处理时间来显示数据(例如名称的大写)。
你更喜欢在数据库中存储文本的哪一个?数据的原始外壳,或者某种标准化。另外,我应该用触发器强制执行此操作吗?还是应该使用客户端代码预处理输入数据?我应该用大写还是小写将所有文本存储在数据库中?
我问你,因为我不确定是否有任何区别,除了额外的处理时间来显示数据(例如名称的大写)。
存放在原始的情况下,除非有其他理由否则。大写或小写数据花费的时间可能非常短,并且您永远不知道您何时需要将真实的原始数据恢复。
我不担心它,只是格式化它,你需要如何使用它的输出。
如果您需要进行大量文本字段搜索(strcol =“aBc”),则可以考虑进行标准化。在一些像postgres这样的数据库系统中,索引不会与ILIKE运算符一起使用,尽管文本搜索特定的索引可能会更好地处理这个问题。
这显然取决于你以后需要做什么。
但是,如果因为您有兴趣加快查找速度(例如按名称,城市等进行搜索),您可能需要创建不同的索引,以便将其用于查找:
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%';
商店。作为一个用户,如果我喜欢我的名字作为cHriS,我就这样输入它,我喜欢这种方式。 我不喜欢的应用程序更改它只是对一些技术原因
如果要优化搜索,使用单独的索引,不改变数据。
你知不知道把人们的名字换回“标题大小写”有多困难? – BoltBait 2008-11-14 19:59:24