On a Drupal 7 site, we have two node types, one called "Collection" (parent node type) and one called "Fabric" (child node type). Collections and Fabrics are connected through an entityreference field.
We want to have a pair of values defined on the Collection node, which is then selected in various combinations for each Fabric node. These are "Colorway" and "Design". We'll define for example 3 Colorways and 8 designs for a given Collection. And when we create each Fabric for that Collection, we will choose one Colorway and one Design - there is always one value from each as a pair.
Most of the time, these values will be defined when creating the Collection node. But occasionally, we will want to add a Fabric node independently. If the needed value (e.g., the new Fabric's colorway) does not already exist, we want to be able to add it via the Fabric node/add form and have it saved back to the Collection so that the value collection's value list remains in sync.
We're wondering what the most future-proof and scalable way to build this would be. We couldn't find any ready-to-go modules to do this. We considered using taxonomy, but it doesn't seem like a good fit (though it does feel like it should be some kind of node-centered taxonomy). It feels like this should be done with fields (and some custom code to do the synching), but maybe a different approach is better?