Search code examples
databasedatabase-designdatabase-normalization

What is the best method for storing multiple skills catagories in a database?


I have a table USER for which I would like to store skills against.

Obviously I intend to use a link table which allows the user to have multiple skills, however say for example the skills are split into categories such as 'technical skills' and 'managerial skills'.

Is it best to have a single SKILL table which stores the type of skill as well, and then a single link table USER_SKILL, or have separate tables MANAGERIAL_SKILL and TECHNICAL_SKILL and then also separate linking tables such as USER_MANAGERIAL_SKILL and USER_TECHNICAL_SKILL?


Solution

  • Your question is confusing, but i'll try to help with my understanding to it,

    First approach:

    Each user have multiple skills, and those skills are variant and they share the same architecture (idSkill, skillName, ......) and they have a stagnant variation is the skill type : Managerial or technical, in that case all you need is two tables : Skills table and Skills_Type table.

    Second approach

    if we consider that each skill type has it own architecture such as

    managerial_skills (idSkill, marketing, accounting, ...)
    technical_skills (idSkill, web, databases, mobile, desktop ....)
    

    then you need those tables also.