we represent every piece as a sub object in the system (e.g. a task or a issue) and report on cogent details using that object's data. So in your case, each flyer, mailer or brochure might be its own task or issue and then a deliverables report could be a task or issue report grouped by project, or a project report might call on the collection of task or issue data to report on those details.
the tough part has been providing a count at a project report level, like being able to show a line item of projects with the total number of flyers, mailers and brochures, or the total number of deliverables as a whole.
Anyway I would take a good look at the reports you want to produce from this, and determine how to build the system based on the reporting you'd like to get.