Par expérience, je te dirais que quand le projet se résumé en 2 lignes, c'est que son auteur lui-même ne sait pas ce qu'il veut
Bref, pour la partie "catégorie", de base, c'est une catégorie dépend d'une et une seule catégorie, pas besoin de deuxième table pour ça, il te faut juste l'identifiant du parent et un moyen d'ordonner les catégories de même niveau (tu peux aller jeter un oeil sur ce topic où on est quelques uns à avoir discuter de comment gérer une arborescence).
Concernant le "soit créer une page", bon, là, c'est trop vague, mais là, tu as probablement besoin d'une table à part reliée à la table des catégories par une clé étrangère.