RE: Storing single numbers in the database

  • From: "Bryan Michael Lenihan" <bryan@xxxxxxxxxxxx>
  • To: <sbecker6925@xxxxxxxxx>, "'oracle-l'" <oracle-l@xxxxxxxxxxxxx>
  • Date: Tue, 5 Jun 2007 14:31:51 -0400



I actually kind of agree with the developer - from what you have posted.  I
typically recommend CHAR/VARCHAR for numeric values that are not going to be
used in a calculation and allow the developer or a check constraint to set
the business rules.  Even more so if the entry is going to be an unlinked
code (0,1) for flexibility and have the developer, or check constraint, set
up the business rules.  


I do not really agree with the translation issue that the developer has
posted, but I do not know what language or system you are using. 


This is just my 2 cents worth from your description. 




(DBA turned Developer turned back to DBA)




From: oracle-l-bounce@xxxxxxxxxxxxx [mailto:oracle-l-bounce@xxxxxxxxxxxxx]
On Behalf Of Sandra Becker
Sent: Tuesday, June 05, 2007 2:08 PM
To: oracle-l
Subject: Storing single numbers in the database


Linux RHEL4, Oracle


I have a developer who wants to define a column as CHAR(1) in an existing
table.  The only values this will ever hold are zero and one.  I asked why
he didn't define it as NUMBER(1) and the response was "Because I don't want
to do the translation in my code."  He believes that the column in this
table will be heavily used when it gets to production.  Since it's a new
feature for the application, we have no way of knowing for sure how the
customers will use it.  They're kind of funny about deciding for themselves
how they want to use the features. 


Questions:  Does it really matter if it's stored as NUMBER(1) or CHAR(1)?
What are the ramifications, if any, of defining the column as CHAR(1)?


I personally believe that if you want to store a numerical value and ONLY a
numerical value in a column, you should define the column as NUMBER.





Other related posts: