I disagree that this is situation is always a result of bad data model design. Please see my attachment.