Yesterday i noticed a foreign key column in a details table that linked directly to a customer table. This details table is just one join removed by a header table from the customer which already the proper foreign key to the customer and the detail, Bear with me.
[Cust] ---< [Header] ---< [Detail]
| V
|________ wtf? ____________|
ASCII db modelling Key:
V
---< = 1 to many, and _| also = 1 to many
When i pressed the table's designer on the issue he defended it by explaining that he'd be saving a join call by using this column...
IMO this saves a slow-typing, lazy sql writer from having to join one extra table at the price of denormalizing the schema. (Which of the normal forms is directly failed by this example?)
Even if using such a concept saved a dozen joins, is it ever worth it?