I’m working on a recruitment app and need some advice on structuring my database for advanced filtering capabilities.
The core of my app revolves around candidate profiles, which include various types of data:
- Experience (List of “Experience” data type)
- Education (List of “Education” data type)
- Tools (List of “Tool” data type)
For each Experience object, I have fields like Description, Start Date, End Date, Company, and Location. Similarly, for Education, it includes fields like Description, Start Date, End Date, Institution, and Location.
The Tool object includes the tool name and an Experience Level (set as an Option Set).
My main challenge is setting up advanced filters that can search within a candidate’s experiences or tool proficiency in a specific way. For example, filtering candidates who have experience with a particular tool at a certain experience level, or who have worked at specific companies.
Could anyone suggest the best practices for structuring my database to handle these kinds of nested and detailed queries efficiently?
I don’t know if it’s best to have the Candidate in the Experience, Tool, etc. Datatype, or if it’s best to have within Candidate data type the list of Experiences, Tools, Education, etc.
The goal of this is to have an optimized database for searching for candidates with lots of filters
Please, if possible, detail the “why” of your answer
Any insights or examples would be greatly appreciated!
Thank you in advance!