我遇到的情況是這樣的。當存儲實體的代碼(在數據庫中必須是唯一的)時,有人可以在技術上將「12345」和「12345」作爲代碼,並且數據庫會認爲它們是唯一的,但是對於最終用戶來說,顯示該空間使得它看起來他們是重複的,並可能導致混淆。我應該在存儲到數據庫之前修剪字符串嗎?
在這種情況下,我肯定會在存儲前修剪。
這應該成爲所有字符串的標準嗎?
我遇到的情況是這樣的。當存儲實體的代碼(在數據庫中必須是唯一的)時,有人可以在技術上將「12345」和「12345」作爲代碼,並且數據庫會認爲它們是唯一的,但是對於最終用戶來說,顯示該空間使得它看起來他們是重複的,並可能導致混淆。我應該在存儲到數據庫之前修剪字符串嗎?
在這種情況下,我肯定會在存儲前修剪。
這應該成爲所有字符串的標準嗎?
這是其中一個問題的答案是「這取決於」。
這裏需要注意的是最小驚訝的原因。用戶會非常驚訝地看到兩個看起來相同的代碼,尤其是當您將它們顯示在表單或表格中時,最後的空間基本消失。用戶也希望這些代碼是唯一的,他們可能期望你的系統執行此操作。對於用戶來說,空間並不是他們期望導致差異的東西。
在其他一些情況下,例如在內容管理系統或文字處理器中,例如,當用戶有意識地輸入空格時,他期望底層數據存儲保持其空間。在這種情況下,用戶可能會放入空格來對齊內容或用於視覺目的。在這種情況下,刪除末尾的空格會讓用戶感到驚訝。
因此,請始終儘可能地模擬用戶的工作流程。
如果您使用varchar,記住GIGO,那麼在表上禁止使用前導空格約束? 如果代碼是數字,那麼使用數字數據類型
我會認爲,除非空間對數據很重要,否則應刪除它。
正如其他人指出的,我的解決方案(使用varchar vs char數據類型)不適用於所有情況,所以我刪除了答案。 – NotMe 2009-06-18 15:16:27