it's pretty much a wash
how often do you run a query that needs customer name plus invoice address (i.e. non-key fields from both tables)? that's how often you do a join, which is less efficient
how many times does the invoice address differ from the physical address (i.e. require a row in the second table)? that's how many "extra" rows you will have
on the other hand, with null fields in one table, you won't really take any "extra" space (except for null bits, which are negligible), and you'll save yourself the bother of doing a join
like i said, it's pretty much a wash, do it whichever way makes sense to you
rudy
http://r937.com/