> Ok, what are the better ways to model something like this?
For the non-technical part a good start would be normalization. (eg. Database_normalization (and check the links there; perhaps Third_normal_form)), if you have not already made up your db model.