你更喜歡在數據庫中存儲文本的哪一個?數據的原始外殼,或者某種標準化。另外,我應該用觸發器強制執行此操作嗎?還是應該使用客戶端代碼預處理輸入數據?我應該用大寫還是小寫將所有文本存儲在數據庫中?
我問你,因爲我不確定是否有任何區別,除了額外的處理時間來顯示數據(例如名稱的大寫)。
你更喜歡在數據庫中存儲文本的哪一個?數據的原始外殼,或者某種標準化。另外,我應該用觸發器強制執行此操作嗎?還是應該使用客戶端代碼預處理輸入數據?我應該用大寫還是小寫將所有文本存儲在數據庫中?
我問你,因爲我不確定是否有任何區別,除了額外的處理時間來顯示數據(例如名稱的大寫)。
存放在原始的情況下,除非有其他理由否則。大寫或小寫數據花費的時間可能非常短,並且您永遠不知道您何時需要將真實的原始數據恢復。
我不擔心它,只是格式化它,你需要如何使用它的輸出。
如果您需要進行大量文本字段搜索(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