OOP relationships. Advice needed!! PLEASE

N

Nemisis

Hi all,

I am trying to work out whether my objects whould contain child objects
or just an ID property to the linking object.

I have the following table in my SQL database

tblCompany
ID
Name
SalespersonID

Then a have tblSalesPerson

tblSalesPerson
ID
FirstName
LastName

If i am going to design this, is it best OOP practice to include the
SalesPersonID within the Company object, or would i create a
CompanySalesperson object within the company object.

If anyone has a good article to read on this, or can explain it too me,
i would really really really appreicate it. Ta
 
E

Eliyahu Goldin

What is your model? A SalesPerson is an employee of a Company and there can
be multiple SalesPersons within one Company? Or A SalesPerson sells to a
Company and there can be multiple Companies for one SalesPerson?
 
C

Chris Fulstow

First, I'd change the design of the database because currently each
company can only have one salesperson. Remove the SalespersonID field
from the Companies table and add a CompanyID to the Salespeople table.
Then you can have more then one salesperson with the same CompanyID,
which is a one-to-many relationship between Companies and Salespeople.

You could then implement this in your .NET code as having a Company
object which holds a reference to a list of SalesPerson objects, for
example:

List<SalesPerson> salespeople;

This type of relationship between Companies and Salespeople is called
"composition".
 
N

Nemisis

Changing the database structure is not an option, i wish it was, i
think it is easier to understand the way that you have described.

A company can only have one salesperson assigned to it, and a
salesperson can be the salesperson for many companies.
 
C

Chris Fulstow

Ok, I see your predicament. Your Company objects could each hold a
reference to Salesperson object, and because it's only a reference you
could have more than one Company pointing to the same Salesperson
object.
 
N

Nemisis

Chris said:
Ok, I see your predicament. Your Company objects could each hold a
reference to Salesperson object, and because it's only a reference you
could have more than one Company pointing to the same Salesperson
object.

Chris,

U will have to forgive me, as i am a bit new to OOP, and not really
sure what you mean there.

The thing that confuses me a lil, is that a company DOES NOT have to
link to a salesperson, so it is optional.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,755
Messages
2,569,536
Members
45,016
Latest member
TatianaCha

Latest Threads

Top