Right now I'm using two lists side by side where clicking on an item in list A filters list B to offer only the Bs related to the selected A, and Vice Versa. So clicking on B3 make A2 and A5 disappear so you know that B3 is related to A1, A3 and A4. I believe the mental model is not strong enough to make it instinctive to use so I have to provide all sorts of icons and animations to make it convincing. It doesn't help that other stuff is happening at the same time, like details appearing under a selected item and the such. I was hoping to achieve a stronger mental model by providing a metaphor to the user.
The Parents/Children, metaphor seems good, but it only really allows for exactly 2 parents for every child. And if you forget the biological aspect, you end up with the Tree metaphor of Parent/Children where each child has exactly 1 immediate parent (not many-to-many).
Books/Authors are better, but books are usually seen on shelves, which reduces the metaphor to a list.
I'm looking for a metaphor where you can have a shelf full of books AND a room full of authors at-the-same-time, hence the idea to 2 lists. Or a mutation which allows humans to conceive three-way-babies. I think the need for a better metaphor is evident.
Are there other options out there to illustrate many-to-many relationships?
Edit: In particular, I'm looking for a metaphor which will allow easy exploration of both kinds of elements in one metaphor. For Books/Authors, I need a bookshelf and a room full of authors: two metaphors. For Students/Classes, I need a list of students and a list of classes: How can I make it as easy to look through the students as it is to look through the classes?