Solved

Relationship Model

Posted on 2016-08-30
3
54 Views
Last Modified: 2016-10-19
Hi,

I have built a very small niche job website.

I want to send new opportunities out to candidates who have already applied to a job on the site, however i only want to send jobs that are relevant to them... and not a list of every new job that is posted.

I'm trying to map out a relationship between jobs.

Here are the current attributes for each job:

Job Title (can't use this as it is free text)
Salary
Sector (can't use this as a job can belong in many different sectors... i.e an IT Manager could belong to several sectors (and not just Technology)... a HR manager working in Marketing will select Marketing as their job sector)
Job Details

I was thinking of adding 3 new fields:

Job Sector (IT Job)
Job Type (IT Manager)
Level (Junior, Mid, Senior)

I could then query use the Job Sector, Job Type and Level to match new jobs / opportunities with Talent who have applied to a previous job with the same match.

Can anyone offer any thoughts or advice on this?

Thanks in advance for your help.
0
Comment
Question by:oo7ml
3 Comments
 
LVL 142

Assisted Solution

by:Guy Hengel [angelIII / a3]
Guy Hengel [angelIII / a3] earned 250 total points (awarded by participants)
ID: 41777565
as you said, a job could be "related" to several sectors, or "it" levels.
hence, you should define a table holding the list of possible values there, and make a intermediate "relation" table of what job is related to what item(s) in that list of values, making it a "many-to-many" relationship.
0
 
LVL 52

Accepted Solution

by:
Julian Hansen earned 250 total points (awarded by participants)
ID: 41777827
Sounds like you need to implement some sort of tag system - each job can be assigned 3 (or whatever) tags - in order of preference.
Job seekers have their own tags linked in order of preference.

By combining tag and ordering on both job and seeker you can come up with a heuristic.

Make the ordering number in reverse - so preferred has a higher value. Then simply multiply each matching tag from seeker by its matching tag value in poster - and sum the results. Define a cutoff point and include only those with a score above cutoff

Example
Seeker has the following tags in the following preferred order
A - 3
B - 2
C - 1
Job #1 has the following tags
X - 3
B - 2
A - 1
Score is therefore
B (2 x 2)
A (3 x 1)
= 7
Job #2
A - 3
Y - 2
C - 1
Score
A (3 x 3)
C (1 x 1)
= 10
Max score is 14 - so if we say cutoff is 8 then Job #2 makes the grade and Job #1 does not
0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Build an array called $myWeek which will hold the array elements Today, Yesterday and then builds up the rest of the week by the name of the day going back 1 week.   (CODE) (CODE) Then you just need to pass your date to the function. If i…
This article discusses how to create an extensible mechanism for linked drop downs.
Viewers will get an overview of the benefits and risks of using Bitcoin to accept payments. What Bitcoin is: Legality: Risks: Benefits: Which businesses are best suited?: Other things you should know: How to get started:
The viewer will learn how to look for a specific file type in a local or remote server directory using PHP.

929 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

11 Experts available now in Live!

Get 1:1 Help Now