I asked this question recently: Using Aggregation and Association
I accepted the answer, however I am confused by the answers response. The answerer talks about deleting database records. However, I am talking about the domain model, not the database.
Say I have a many to many relationship in the database like this:
CREATE TABLE Person (ID int, name varchar(100), dateofbirth datetime, primary key (ID))
CREATE TABLE Sport (ID int, description varchar(30), primary key (ID))
CREATE TABLE PersonPlaysSport (Person ID int references Person(ID), SportID int references Sport(ID), PRIMARY KEY (SportID, PersonID))
In the above database structure a person plays many sports.
Say I create two objects in the domain model i.e. one for Person and the other for Sport with a none to many relationship i.e. Person.Sports exists but Sports.People does not exist.
Can I describe the object relationship between Person and Sport in the object model as a composite in this scenario rather than an Association bearing in mind that a composite must:
1) Person owns Sport 2) Sport belongs to a single person 3) Persons lifeline controls sport lifeline
I am confused about point two. The database shows that a sport can be played by many people. However, the object model shows that a sport is played by no people (there is no sport collection in the Person class).
Can I represent a many to many relationship as a composite relationship in the object model?