2008-11-14 40 views
3

你更喜欢在数据库中存储文本的哪一个?数据的原始外壳,或者某种标准化。另外,我应该用触发器强制执行此操作吗?还是应该使用客户端代码预处理输入数据?我应该用大写还是小写将所有文本存储在数据库中?

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

+1

你知不知道把人们的名字换回“标题大小写”有多困难? – BoltBait 2008-11-14 19:59:24

回答

12

存放在原始的情况下,除非有其他理由否则。大写或小写数据花费的时间可能非常短,并且您永远不知道您何时需要将真实的原始数据恢复。

1

我不担心它,只是格式化它,你需要如何使用它的输出。

1

如果您需要进行大量文本字段搜索(strcol =“aBc”),则可以考虑进行标准化。在一些像postgres这样的数据库系统中,索引不会与ILIKE运算符一起使用,尽管文本搜索特定的索引可能会更好地处理这个问题。

3
  1. 在没有迫切需要 有你的数据变化,不 改变你的数据。
  2. 如果没有 这个令人信服的理由让您的数据库索引区分大小写,请在数据库中使用大小写不敏感的 。
  3. 花时间担心用户看到和想要什么。这会引导你回答你的问题。
5

这显然取决于你以后需要做什么。

但是,如果因为您有兴趣加快查找速度(例如按名称,城市等进行搜索),您可能需要创建不同的索引,以便将其用于查找:

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%'; 
3

商店。作为一个用户,如果我喜欢我的名字作为cHriS,我就这样输入它,我喜欢这种方式。 我不喜欢的应用程序更改它只是对一些技术原因

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

相关问题