Topic: Schema/model design for "parts in general" vs "parts in system"

I'm trying to figure out the best model choice for a system design application. My basic models:

System has_many Amplifiers
Amplifier has_many Speakers

I'd like a drop-down list to appear when created a System that allows selection of existing amplifier parts. Each amplifier has a drop-down list for adding speakers. To populate these drop down lists, I've created two more models:

Amplifier_part
Speaker_part

These models will contain all the information related to the part in isolation. In addition to part selection, some information will be recorded regarding the performance of each amplifier in a particular system installation. This means that the Amplifier model in System will contain a) a reference to an Amplifier_part and b) a few stored values related to in-system performance.

My question: is this the most straightforward way to achieve this? It feels a bit odd creating separate "Part type" vs "Part instance" models.

Last edited by asfarley (2012-12-09 15:48:00)