Hi,
a rule of thumb is: if there's lots of redundant data, there's something wrong with the design. Avoid redundant data whereever possible.
Maybe in smaller projects it makes sense to keep the data in less tables and to have the same data more than once, just to keep thing simple and to get it running in short time. But the bigger the project, the better you keep the data in different tables and work with foreign keys, indexes and views. This usually results in a higher complexity, that's true, but in an improved performance also.
Regards,
Bernd