Hi Ken ----
I'd vote for solution #3 of the ones you pointed out...it's the most efficient, space-wise. You reporting is not complicated at all, you just need to create a join between the header and detail tables at report time with a very simple select: SELECT hdr.*,det.* FROM hdr,det WHERE hdr.primekey=det.parentkey
Finally, there ain't nothing wrong with a 1-to-1 or 1-to-0 relationship. It's very common in database schemes.
HTH
>
>A third solution would use three tables. The first is a 'header' table with columns for all common data. A second table contains the columns for operations and a third table contains the columns for A/R. This design complicates reporting and seems a little wierd because the second and third tables have a one-to-one relationship to the header table.
>
------------------------------------------------
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