0

I am mapping an idea for a relationship using Core Data.

I have an Employer entity who has a many-to-many relationship with Employees. Basically, an employee can work for multiple employers, and an employer can have multiple employees.

The problem I'm facing is, I'm not sure how to manage the contracts between employees and employers.

As an employee can work for either 1 or many employers, they would naturally have a contract for each employer they work for (complete with salary, duration) and a list of dates when they are working for a specific employer.

My question is - how to manage the relationships between Contracts, ContractDates with Employers and Employees?

Thank you.

Image follows.

contract entity relationship

zardon
  • 2,910
  • 6
  • 37
  • 58
  • btw, if you create to-many-relationships I would recommend to use the plural in the relationship name. When you write code you can see from the name if this is a to-many or to-one relationship this way. So your Employee->>Employer relationship should be called employers – Matthias Bauch Feb 11 '11 at 10:31

2 Answers2

4

in the real world you have a contract between an employer and an employee. So why not do the same in core data? enter image description here

Matthias Bauch
  • 89,811
  • 20
  • 225
  • 247
0

Use a junction table.

That is, the contracts table refers both to Employers and Employees, linking them together. It also contains information on contracts. This way, the contract applies to the relation between employer and employee, which is exactly what you want.

Sjoerd
  • 74,049
  • 16
  • 131
  • 175
  • Is fluchtpunkt's answer a junction table? Also, in core data isn't it wrong to confuse tables with entities. I always get caught out by that. – zardon Feb 11 '11 at 14:50
  • Yes. This answer is generic (and correct), but you're right not to think about Core Data in terms of an RDBMS. – paulbailey Feb 11 '11 at 15:06