title: How do design multilevel database driven menu?
body: <p>I want to create a database driven menu with multiple levels, but I'm not sure what the best practice is in designing the database table(s).  I've done some searching, but can't find much relevant information.</p>
  
  <p>Initially, I had thought to create a table for each level.  For instance, the parent level menu would simply be <code>dbo.Menu</code> with the immediate children menu items housed in <code>dbo.SubMenu</code>.  With that said, I envisioned the following design for <code>dbo.Menu</code>:</p>
  
  <p><img src="https://i.stack.imgur.com/nQyua.png" alt="enter image description here"></p>
  
  <p>However, once I began populating this table, I realized that the site will have some items with a depth of 3, and there is potential for adding more levels later.  </p>
  
  <p>Is there a best practice for designing a dynamic menu?  Should I have one table containing all menu items or should I separate the menu items into multiple tables?</p>