Business has a number of numeric fields where they also need to be able to flag the field as 'N/A'. 'N/A' means the user has looked into putting a value in the field but has determined that the field is not applicable in this case.
In his books on SQL Server, Itzik Ben-Gan states that NULL represents a missing or unknown value. We follow that in our design, and when we see a NULL we assume that no one has entered a value yet, and so action is required.
'N/A' on the other hand means the user has looked into it and determined the value does not apply. For example, Year of Renovation would not apply to newly built buildings that have not been renovated.
We don't wish to create helper fields or a new table for all these or put a burden of extra logic on the interface -- it will be for a simple CRUD app.
Would it be considered bad practice in this case to use string/ varchar data types for these numeric fields? No heavy computation is required with the values.