2011-04-19 46 views
1

我在我的對象中有一個字段,需要固定寬度和數字。它將保存諸如0002,0103或1212的值。目前,我的Java對象將該字段定義爲字符串,而數據庫(MySQL)是一個整數,填充爲4個字符:laborCode int(4) zerofill。我有一些其他表格,這些表格有相同的模式,有些有兩個字符,一些有四個。這些表是通過自動編號主鍵鏈接到其他表的查找表。固定寬度編號應使用哪種字段類型?

在前端,當用戶向表中添加數據時,我有一些預先存在的驗證,可以確保用戶輸入一個數字,因此他們只需輸入2,103或1212.當數據被插入,我不必有任何代碼留下填充數據,並且選擇語句返回填充值。

創建表格後,我開始想,也許我應該將字段定義爲char:laborCode char(4)。如果我這樣定義它,我需要正確格式化數據,使用對象的setter方法應該很容易。這種方式似乎對我來說更加正確一些,我的java對象中的字符串值映射到數據庫中的字符串值。

使用一種數據類型來定義字段是否有其他優點/缺點?

回答

1

個人而言,我喜歡將數字作爲數字留在數據庫中。您可以輕鬆地對它們進行排序/執行其他數字操作。此外,字母不能意外插入。

您可以在您的域對象設置器中始終使用NumberFormat,以確保該數字已針對對象好處進行了正確格式化。

+0

我不會擔心排序問題,因爲業務需要用零填充。即使字符字段也會正確排序。 – xecaps12 2011-04-21 03:46:19