Signify this problem by means of:
i. An Entity Relationship model;
ii. Relational tables.
Pete's Programmers is a firm which supplies part time staff on contract to organisations requiring computing experts for short periods of time. He keeps a file on all contractors which haves their contractor-id, name and phone.
Clients ring Pete to discuss their requirements. If it is a new client, he records their name, phone number, address and assigns them a client-id.
Pete then assigns a unique job number to every request, notes the request date and the needed start-date. He then determines which skills will be needed (e.g. AN = analysis, SQ = SQL coding, DD = database design etc.) and estimates the number of days needed to complete the job. He next consults a card catalogue to determine the potential contractors having all the skills needed for the job.
Finally Pete looks in the job allocation register, that shows when each contractor is expected to start and when they actually finish working on a particular job. Therefore he can determine which have free time. Contractors can be assigned to tasks either full time or part time, so it is possible for a contractor to be working on many jobs at the same time. Pete assigns one or more contractors to the job. The job contract is then completed, and after signing by the customer, Pete files a copy.
As the contractors work on the job, they are needed to file a daily work sheet that shows how many hours they have worked on any job. When every job is finished, the contractor notifies Pete so his records can change the status of the job and the client can be billed. Note that the job status can either be R = requested, O = ongoing, S = suspended or C = completed.)
Note that your solution needs to be flexible so that:
- contractors can be replaced whereas working on jobs;
- contractors can be started or terminated at any time for any job.