Como modelar um relacionamento auto-referencial com muitos pais?

Eu quero modelar o seguinte da maneira mais fácil:

Uma habilidade tem muitas habilidades dependentes.

Cada habilidade deve existir por conta própria, e uma habilidade pode ter outras habilidades que são pré-requisitos.

Por exemplo:

Skill: Front-End Development Has Dependent Skills -> [HTML, CSS, SCSS]
Skill: Web-Design Has Dependent Skills -> [HTML, CSS]
Skill: HTML

Eu gostaria de poder fazer:

@front_end_development.dependent_skills ##or a more semantic mapping

Eu provavelmente gostaria de subir na árvore, mas não consigo pensar no melhor nome para fazê-lo. Talvez eu gostaria de referenciar através de HTML que o Web-Design depende disso.

Faz sentido fazer este auto-referencial ou é o fato de que isso está machucando meu cérebro um cheiro de código e implorar que algo mais é ideal? Tudo se resume a uma habilidade que depende de outras habilidades.

Seria melhor modelar isso usando o mongo?

questionAnswers(1)

yourAnswerToTheQuestion