【发布时间】:2010-09-22 09:55:54
【问题描述】:
您更喜欢哪一个在您的数据库中存储文本?数据的原始大小写,或某种规范化。另外,我应该用触发器强制执行吗?还是应该使用客户端代码预处理输入数据?
我问你,因为我不确定是否有任何区别,除了显示数据的额外处理时间(例如名称的大写)。
【问题讨论】:
-
你知道将人们的名字重新放入“标题大小写”有多难吗?
标签: database
您更喜欢哪一个在您的数据库中存储文本?数据的原始大小写,或某种规范化。另外,我应该用触发器强制执行吗?还是应该使用客户端代码预处理输入数据?
我问你,因为我不确定是否有任何区别,除了显示数据的额外处理时间(例如名称的大写)。
【问题讨论】:
标签: database
保存在原盒中,除非有其他理由。对数据进行大写或小写所花费的时间可能非常少,而且您永远不知道将来何时需要返回真实的原始数据。
【讨论】:
这显然取决于您以后需要如何处理数据。
但是,如果您询问是因为您有兴趣在以后加快查找速度(例如按名称、城市等搜索),您可能希望创建不同的索引,以便将这些索引用于查找:
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,我会以这种方式输入,我也喜欢这种方式。 我不喜欢应用程序更改它只是出于某些技术原因
如果要优化搜索,请使用单独的索引,不要更改数据。
【讨论】:
【讨论】:
我不会担心它,只需将其格式化为您需要的输出格式。
【讨论】:
如果您需要进行大量文本字段搜索 (strcol = "aBc"),您可以考虑规范化。在某些数据库系统(如 postgres)中,索引不与 ILIKE 运算符一起使用,尽管文本搜索特定索引可能会更好地处理这个问题。
【讨论】: