So that's exactly what I mean. If you can deduce the value of the flag from the presence of a discount ID in a certain table, then that flag is superfluous. If you want to know somewhere in a process whether the discount can still be applied, you only have to check the ID. The danger of your construction is that inconsistencies can arise. So that the flag indicates something different than appears from the filling of the tables.