Hiya Jim ---
Me and my crappy syntax :) I meant denormalize in the sense that you are storing the full customer data into the invoice record rather than just the foreign key. But you are right from the schema side, it is normalized in the sense that it's atomicized.
>What you suggest is not denormalization. It is actually normalization. This is because the address in the customer table is defined as the "current customer address" and the address in the invoice is defined as "the customer address at the time of this invoice". These two pieces of data can have different values and they definitely mean different things. To not store the address in the invoice would create a data design that was missing attributes for the invoice. Trying to muck around that design flaw could take pages and pages of program code and historical address tables for the customers.
>
------------------------------------------------
John Koziol, ex-MVP, ex-MS, ex-FoxTeam. Just call me "X"
"When the going gets weird, the weird turn pro" - Hunter Thompson (Gonzo) RIP 2/19/05