Hello,
I'm in the process of turning the first thirty years of a university's yearbooks into a graph database, and I'm having some trouble modeling club membership and officer title/status over time. I would like to be able to query all the years a student was in a club and the officer titles (if any) they held in that club in each year; I would also like the entire club roster for a given year.
Every student was a member of at least one club for the duration of their time at the university:
(:Student)-[:WAS_MEMBER_OF]->(:Organization {name: 'Upsilon Phi'})
However, membership would change from year to year as people graduated and new students joined, and students could hold different officer titles in the club each semester. Something like this would only work for one year:
(:Student {name: 'Jane Smith'})-[:WAS_MEMBER_OF {year: '1908', title: 'president'}]->(:Organization {name: 'Upsilon Phi'})
What would be a better way to model this? Intermediate nodes for each school year? Organization president/vice-president/secretary as their own nodes, with the year as a relationship property?
Thank in advance!