It seems to me that this is more a question of how to correctly model a domain, and not a NHibernate mapping problem.
After you sort your domain modeling, I think you will find that NHibernate mapping falls out relatively easily.
In one place, to look at the idea of role modeling, you need to look for " Color Modeling " - Jeff de Luca has some resources , although the idea came about with Peter Coad
The main idea is to separate the participant’s personality from the role they play in their activities.
For example, you might have a Person object that captures the identity of a particular person.
Then, a completely separate object "Student", which captures additional information for recording the registration of a person as a student. Each instance of the Student would have a link to the person registered. One person can be associated with many "student" entries, one for each individual enrollment.
In parallel, you can have a separate “Tutor” object that records employment data when someone is hired to teach students in one-on-one situations. The Tutor object captures additional information about how someone is being used as a teacher.
This structure gives you great flexibility - one person (Joe Bloggs) can just be a student, another person (Jane Dow) can just be a mentor, and a third (Chuck Norris) can be both.
In addition, the introduction of another role (Lecturer, Marker, Administrator) becomes easier, because add-ons do not require changes to existing objects.
Bevan
source share