Materias: vw_materia

vw_materia expone el catálogo de materias como una jerarquía (árbol). Cada fila representa una materia y su relación padre/hijo, además de un campo full_path que describe la ruta completa desde una materia raíz hasta el nodo.

Contrato importante: la jerarquía debe ser acíclica (sin bucles en materia_padre_id).

Casos de uso (queries)

1) Listar materias con su ruta completa

SELECT materia_id, code, full_path
FROM public.vw_materia
ORDER BY full_path;

2) Buscar por texto dentro de la ruta

SELECT materia_id, full_path
FROM public.vw_materia
WHERE full_path ILIKE '%Historia%'
ORDER BY full_path;

3) Obtener el subárbol de una materia (por ID)

SELECT *
FROM public.vw_materia
WHERE full_path LIKE (
  SELECT full_path || '%'
  FROM public.vw_materia
  WHERE materia_id = 123
)
ORDER BY full_path;