Choose two columns for same purpose or it should be two different columns? We are an ecommerce website. We provide Finance option for our stocks, we have these finance options for few stocks. We have a stock table which has two columns:


IsFinanceAvailable: true/false. This tells if stock has emi available or not.
EmiAmount: This gives emi amount if its applicable. The stock may have finance but need not have emi.


We may have a case where IsEmiAvailable is true but EmiAmount is not available, but if EmiAmout is available, IsEmiAvailable has to be set true.

Should we have two separate columns or infer all info just with EmiAmount. For example:

EmiAmount null: This means no finance

EmiAmount 0: This means finance available but no emiAmount

EmiAmount>0

Should we have two different columns or just emi amount would do? what are pros and cons?
If there are only 3 states for EmiAmount (and barring other complications that may need to be added) I would be inclined to use the EmiAmount (NULL, 0, >0) to define the state.

Why add a flag (which is duplicate information) if the data itself easily describes the state that you need to know?  

I greatly prefer avoiding adding duplicate data which must itself be maintained. And a single source of the status (the actual data) is all that you need. 

Of course, there may be complications unmentioned that could complicate matters.