固定長度字串

2003 年 8 月 11 日

檢視大多數在應用程式程式語言和關聯式資料庫之間進行對話的程式庫,您會注意到它們會將資料庫中的字串類型(char 或 varchar)對應到程式語言中的字串類型。簡單、顯而易見,但這可能是不對的。

我質疑這一點的原因是,SQL varchars 是固定長度的,而大多數應用程式語言字串會處理任何長度。這會在資料庫更新時造成許多潛在問題,因為您總是冒著使用過長的字串更新資料庫的風險。

處理這個問題的方法之一是建立一個固定長度的字串類型,其中實例知道長度和值。這樣一來,每當您將字串值指定給它們時,它們就可以根據其長度進行檢查。這樣的物件可以擲回例外或進行截斷,或執行其他一些行為。事實上,輸入字串過長的行為可以新增到實例資料中。

使用這樣的類型可以改善 UI,因為 UI 欄位小工具可以詢問固定長度字串的大小,並建立一個只接受該大小輸入的小工具。這是處理過長輸入字串最棒的方法,但只有在從資料庫中傳遞資訊時才有可能。通常這樣的資訊會遺失。

這個概念是更一般設計問題的一個具體範例。

  • 隔離資料儲存庫很好,但您仍然必須遵守它對您施加的限制。
  • 當人們可以讓事情變得更簡單時,他們通常不願意建立簡單的值類型(請參閱 何時建立類型 以了解更多資訊)
  • 在 UI 中放入簡單的驗證會產生更友善的介面。訣竅是找到在不重複驗證邏輯的情況下執行的方法。

儲存和驗證字串的物件可以做的事情不只是長度檢查。您可以包含檢查正規表示式等內容。但長度檢查是一個簡單的範例,可以讓處理資料庫變得更容易。