Hm, meine erster Ansatz wäre
3 Entities: Person, Relation, RelationTyp
Person hat
- eine Collection "forwardRelations", one-to-many, gemappt als inverse zu Relation.quellPerson
- eine Collection "backwardRelations", one-to-many, gemappt als inverse zu Relation.zielPerson
Relation hat
- einen RelationTyp (many-to-one)
- Quellperson, many-to-one
- Zielperson, many-to-one
Das resultierende DB-Schema sollte so ziemlich das von dir genannte sein. Hab ich was übersehen? Natürlich sollten die Relationen-Collections der Person nicht public sein sondern über Methoden verändert werden, die das ganze Konsistent halten.
_________________ Marcus, schulte.marcus <at> web.de
|