Ok, I'm stuck on this one and would love to hear your thoughts.

I need to create a piece of data along with an arbitrary number of meta-data objects. The meta-data objects are created at the same time as the master object and can be created in parallel or serially (on one or multiple pages - doesn't matter)

I'll explain with an example. It's not actually what I need to do, but it's a much simplified use case that should still hit on the same key issues.

Let's pretend I'm developing a picture uploader and person-tagger (people can be tagged in the picture, referenced simply by text data like their name, nothing fancy like uid). Here's a description of the steps in the process:

1. User uploads picture.
2. User adds a person-tag. This involves filling out several fields (e.g. person's name and favorite Ben & Jerry's flavor)
3. Repeat step 2 an arbitrary number of times.

The best solution I can come up with so far uses CCK fields. I'm confused, though. Can I add a variable amount of CCK fields to a given node of a content type?

I think I might be going the wrong direction with CCK here...Can this be done with some other module? Thanks in advance for your help!