"--": , , .
, Person ↔ Project RoleType / , RoleType , ( , "", FK , , /?)
- FK Person, Project Role, Project:
select a.person_id, b.project_role_id, c.project_id
from person a join project_role b on (a.id = b.person_id)
join project c on (b.project_id = c.id)
where a.person_id = ?
, Project:
select a.person_id, b.project_role_id, c.project_id
from person a join project_role b on (a.id = b.person_id)
join project c on (b.project_id = c.id)
where c.project_id = ?
#. , , , , , ProjectRole - .
, Project::addPerson( Person& ) Project::addProjectRole( ProjectRole& ), , Project::addPerson( Person& ) :
void Project::addPerson( Person& p ) {
this.addProjectRole( new ProjectRole( p, &this, RoleType::UNASSIGNED ) ;
}
ProjectRole , . , RoleType ( , , ), , , , , ProjectRoles).
, Person , ; , , . , , ( ), . (NHibernate, , , .)
, , :
1) " ";
2) (, )
; 3) , .