Cómo funcionan los menúes en Drupal

Las tablas más importantes del modulo menu son menu_links y menu_router.

La tabla menu_router tiene más filas porque contiene todos los menúes definidos incluyendo los del tipo MENU_CALLBACK, por esa razón se puede encontrar alli el menu 'node' y 'rss.xml' pero no en la tabla menu_links donde solo van (me parece) los menus que están definidos como MENU_NORMAL_ITEM y pertenecen a una estructura de menu.

Es importante señalar que Drupal usa la técnica 'materialized paths' para almacenar la ruta completa desde el padre hasta el hijo en cada fila y que se puede ver en la tabla menu_links, a traves de las columnas que van de la columna p1 hasta la p9 (Drupal 7 solo permite 9 niveles de anidamiento).

Finalmente, ambas tablas están relacionadas por la columna menu_links.router_path y menu_router.path

Más información

http://www.ibstaff.net/fmartinez/?p=18

http://www.mongodb.org/display/DOCS/Trees+in+MongoDB

https://communities.bmc.com/communities/docs/DOC-9902

La misma técnica se implementa en las tablas de comentarios en la columna comment.thread

Etiquetas: