I'm using Feeds to import content from XML. The content is films and their showtimes, like this:
<film id=av1>
<title>Avatar</title>
<showtimes total="2">
<showtime show_id="1" id="av1" date="1/1/2012" price="10" />
<showtime show_id="2" id="av1" date="2/1/2012" price="15" />
<showtimes>
<film>
Right now, I've created two content types (Film and Showtime) and using Node Reference (References module) to relate Showtime to Film. Then I have various views that use the relationship to show listings, date listings etc.
This works ok, but Node Reference can only link on node title, so if someone updates the film title in the source feed we get problems. It would be better to link using the ID field, which never changes.
The problem is that I'm using Feeds to import to two content types, so running two Feeds importers, and they have to use title from the source to sync. So say the Film title is changed in Drupal, then more Showtimes get added to the XML. On import, the new Showtime nodes are created but can't find their Film node. Using the ID field from the source would keep things joined up. Maybe using Field Collection instead of referenced content types is better?
Possible solutions:
Use a taxonomy vocabulary and create a new term 'id' for each film. Then tag showtimes with the same term. I'm not sure this is a good use of taxonomy, creating single-connections in this way?
See if Relation module provides linking by field. Probably won't work with Feeds yet.
Create a single content type for films, and use Field Collection to store the showtimes. Then everything is connected in a single node. Not sure how feasible this is.
Any guidance or suggestions welcomed!