• capnhector -

    In this hypothetical example, it was assumed that a customer could have several accounts and orders are related to accounts for budgeting purposes. In this situation, we shouldn't store CustomerID in the Orders table because it's already implied by AccountID.

    You've indicated that in some situations, being able to skip a join can make a big difference provided that we can back the specific scenario with a performance test. Did you include the unique constraint & update cascade?