Thanks. I agree that there's a similarity with rdbms, and elsewhere in the great big project I'm part of there's someone working on a database that models exactly these relationships in this same way, but that wasn't quite my question.
how you then wrap that in an object-oriented code is a matter of taste.
was my question. I think it's not just a matter of taste, I think there are robust ways of doing this, and spaghetti-esque ways of doing it, and I can't quite figure out how to get it right. Thanks for the input, though!