Ik zal even proberen uit te leggen wat de situatie is en wat mijn probleem is. Ik ben bezig met een vacaturebank. Nu heb zijn er kandidaten die hun profiel willen matchen op de vacatures. Dat houdt in dat een kandidaat zijn profiel opgeeft, waarna er bij een zoekopdracht een bepaald aantal vacatures uit komt rollen die overeenkomen met dat profiel.
Dat matchen moet gebeuren op basis van zogenaamde profiel details. Dit zijn bepaalde vragen die in een profiel in te vullen zijn en voor vacatures in te vullen zijn. (je kunt daarbij denken aan omgeving, type werk, salaris, etc.). Nu hoeven niet alle gegeven antwoorden op die profiel details overeen te komen, maar de best overeen komende vacatures moeten wel boven aan komen.
Nu heb ik dus de volgende tabellen in de database:
-Kandidaten
-Vacatures
-ProfielDetails
-ProfielDetailOpties
-VacatureProfielDetailKeuzes
-KandidaatProfielDetailKeuzes
De laatste 2 zijn in princiepe gewoon koppel/associatie tabellen.
Het probleem dat ik heb is dat ik niet goed weet hoe ik de tabellen kan koppelen op zo'n manier dat bepaalde profiel details niet overeen hoeven te komen. Ik weet bijvoorbeeld wel dat er een left join bestaat, maar dat betekent eigenlijk dat alle vacatures geselecteerd worden, of dat de best overeenkomende op 1 profiel detail bovenaan komen. Je kan immers (volgens mij) niet sorteren op meerdere kolommen met gelijke behandeling. (Ik zou ook niet weten hoe het anders zou moeten)
De vraag is dus hoe ik een query construeer die zo'n complexe select goed doet. Is dit uberhaubt mogelijk? Indien dat niet zo is, waar kan dan meer informatie vinden over problemen als deze?
Dat matchen moet gebeuren op basis van zogenaamde profiel details. Dit zijn bepaalde vragen die in een profiel in te vullen zijn en voor vacatures in te vullen zijn. (je kunt daarbij denken aan omgeving, type werk, salaris, etc.). Nu hoeven niet alle gegeven antwoorden op die profiel details overeen te komen, maar de best overeen komende vacatures moeten wel boven aan komen.
Nu heb ik dus de volgende tabellen in de database:
-Kandidaten
-Vacatures
-ProfielDetails
-ProfielDetailOpties
-VacatureProfielDetailKeuzes
-KandidaatProfielDetailKeuzes
De laatste 2 zijn in princiepe gewoon koppel/associatie tabellen.
Het probleem dat ik heb is dat ik niet goed weet hoe ik de tabellen kan koppelen op zo'n manier dat bepaalde profiel details niet overeen hoeven te komen. Ik weet bijvoorbeeld wel dat er een left join bestaat, maar dat betekent eigenlijk dat alle vacatures geselecteerd worden, of dat de best overeenkomende op 1 profiel detail bovenaan komen. Je kan immers (volgens mij) niet sorteren op meerdere kolommen met gelijke behandeling. (Ik zou ook niet weten hoe het anders zou moeten)
De vraag is dus hoe ik een query construeer die zo'n complexe select goed doet. Is dit uberhaubt mogelijk? Indien dat niet zo is, waar kan dan meer informatie vinden over problemen als deze?