Could I suggest using the key/value method with a twist? One row for the key key owner, another for the key name, a different row for the value, and a surrogate key to tie them together. I officially dub this scheme EEAV, Extreme Entity/Attribute/Value!
-PatP