In our current project we had to create a menu which was in a multiple level parent child relation. Main menu contains sub menus which contains item menus. On click of item menus a whole new menu gets loaded internally on the right hand side. Another user requirement was that there must be an admin module to update the menus. A pretty common an straight forward requirement.
Catch: The Only catch was user were not sure what will be the structure of the menu number of level, kind of action on each level menu click, menu layout etc.
We were absolutely sure to create a table structure for Menus which handle multilevel menus and relationship with right hand menu. But My Manger asked since our first release is in 2 weeks can we simply keep the menu data in XML and load it.
Reason for delay in database:
- In first release user just wanted to do user side of displaying only few menus.
- The first release was in 2 weeks.
- The links and its functionality was not clear.
- To get access to the development database will take more than a week.
- This will give us more clarity on columns in the Menu table
It worked for us:
- We focused on the GUI functionality which was top priority to client.
- We were not rushing with to many things.
- After 1 release there were other problem areas which came up thus changing the client’s priority.
- The code worked in production for 4 months with XML as the data source for the menu.
- Changes in the menu item was easy for Support guys.
I am not advocating that we must always go with XML instead of Database. But my point is we have to take bold decision which will satisfy the customer needs and some times move away from conventional thinking.