I second lebisol’s suggestion of Playa and Matrix. I prefer using channel entry relationships over categories for flexibility’s sake. Together they will greatly simplify your task. Though in this case, you may not necessarily need Matrix.
Matrix would be a good option if you wanted to enter a multitude of images into a single entry - like all the images in an exhibition - but then if more than one exhibition were to ever include a work of art included in a previous exhibition, you’d be duplicating content a little. So under those circumstances, I might suggest simply having the dedicated channel for works of art. The multiple works of art by a single artist can then be tied together using the playa field.
So it sounds to me like you really have 3 channels of content - exhibitions, artists and works of art - and relationships between them.
In my experience, I would suggest a channel for each of the three. And so in the exhibition channel, you would have a playa relationship field that would allow you to select which works of art will be displayed in that exhibition.
In the works of art channel, you would use a plain old EE relationship field to assign an artist to the work of art (since presumably there would be only one - but if there is even the slightest possibility of needing to assign more than one artist to a single work of art, you could use a playa relationship field here as well.
And the artist channel would be self-contained. In your templates, you use the playa relationship fields to pull it all together. That would give you the flexibility to have the one to many relationships you need throughout the site. So you could then display:
By Exhibition
- the artists represented
- the works of art represented
By Artist
- the works of art by this artist
- the exhibitions in which the artist is exhibited
By Work of Art
- the artist
- the exhibitions in which the work is displayed
That’s the approach i would take in your shoes anyway. Hope that helps.
Jean