簡體   English   中英

固定寬度編號應使用哪種字段類型?

[英]What field type should I use for fixed width number?

我的對象中有一個字段,該字段必須是固定寬度且只能是數字。 它將包含諸如0002、0103或1212之類的值。當前,我有Java對象將此字段定義為字符串,數據庫(MySQL)是整數,填充為4個字符: laborCode int(4) zerofill 我還有另外幾個具有相同模式的表,其中一些帶有兩個字符,一些帶有四個。 這些表是通過自動編號主鍵鏈接到其他表的查找表。

在前端,當用戶向表中添加數據時,我已經進行了一些預先存在的驗證,以確保用戶輸入數字,因此他們所要輸入的只是2、103或1212。​​當插入數據時,我不必保留任何代碼來填充數據,並且select語句返回填充的值。

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

用一種數據類型定義字段比另一種數據類型有什么優點/缺點?

就個人而言,我喜歡將數字保留為數據庫中的數字。 您可以輕松地對它們進行排序/執行其他數字運算。 另外,絕不能意外插入字母。

您始終可以在域對象設置器中使用NumberFormat,以確保數字格式正確,從而使對象受益。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM