You could investigate an EAV model. It often gets a bad review, but I find there are some instances where it is quite an effective method. There was a great post on SO relating EAV to pure 6NF and how it was a great model however, I can't seem to track it down.
Having said that, it is most useful when trying to store a wide variety of attributes against a single entity. This may not be your primary objective, and therefore it may be that others have a better idea, but I'd say it is worth taking a look.
Edit:
Here is the link I was referring to earlier It's worth investigating some of the points raised here to determine if it is actually suitable to your situation.