Topic: Flexible Task DB Model

Hi there!

I'm looking for some help understanding+implementing a somewhat more complicated Task model.  My DB has projects, orders, and other basic business like models.

I'd like to be able to assign tasks to one or more of these.  For example, I'd like to be able to assign a task to a specific project AND contact so it comes up for review in the project and under the contact's specific pages.

What's the best way to implements this?  Do I need to create a join table for every relationship or is there a better way?

Thank you!