Je penses que le treebehavior serait la solution.
la dans l immédiat sans reflechir je penses qu'il serait bon de faire une table "Menu"
CREATE TABLE menus (
id,
name,
parent_id, (voir tuto treebehavio du pourquoi de ce champ),
link, (lien associé au menu)
lft,
rght,
);
A partir de la à mon avis tu pourras creer autant de menu et sous menu que tu le voudras, étant donnée que chaque parent sera le titre de ton menu si on peut dire
exemple:
0 -> Menu principal
-- 2 -> Sous menu principal 1
-- 3 -> Sous menu principal 2
4 -> Sidebar gauche
-- 5 -> Sous Sidebar gauche 1
------ 6 -> Sous sous Sidebar gauche 1
-- 7 -> Sous Sidebar gauche 2
etc ...
Apres pour la position etc je te laisse regarder le tuto sur le treebehavior.