We had a program malfunction because it re-used a data field to make a processing decision; when the characteristics of the data stored in the data field later changed, the program made a processing error and reported an incorrect amount. In general, I have avoided the practice using data fields for different, disparate purposes because it creates a hidden dependency. Someone asked me what the exact principle was for this design heuristic, and I could only reply that it is a form of coupling. Do you know a more specific rule that prevents this practice?
Domain integrity specifies that all columns in relational database must be declared upon a defined domain. The primary unit of data in the relational data model is the data item. Such data items are said to be non-decomposable or atomic. A domain is a set of values of the same type. Domains are therefore pools of values from which actual values appearing in the columns of a table are drawn.