Need help with deciding on the association

Every entity can have its own table. Then you can define the relationships between them. The use cases will drive the actual design decisions. You will be able to figure out whether habtm or has many through will satisfy your requirements. I don't think STI is a good solution for your scenario.