Навигация, как бы сделать так чтобы с тобой было по удобнее работать?
Господа, всем доброго времени суток, у меня тупой вопрос, основанный на смутных головных сомнениях..
Есть ли смысл навигацию писать не ручками а выгружать из соответствующих табличек БД?
Разрабатываю приложение в котором пока три области, возможно будет больше. Каждая область занимается своим делом, профиль учетными данными пользователя и т.д.
Суть в том что вся навигация в том же профиле написана руками, это порядка 5 ссылок в меню, но приложение будет развиваться и их кол-во будет расти и верстать руками как то не очень хочется да и думаю это не практично.
Что я решил, завести специальные табы в бд.
Roots -к примеру будет хранить имена областей, Nodes - будет уже хранить связанные с именами урлы и всю необходимую инфу об урлах.
Что скажите господа специалисты?
Пару плюсов в сторону такого подхода:
1 сокращение верстки.
2 можно написать свой контрол либо под Razor в виде helper method либо на js.
Я бы подумал о добавлении MvcSiteMapProvider по мимо того, что можно совмещать описания из xml файлов и генерации из любых источников (в том числе и DB) содержит много полезностей (SiteMap, breadcrumb и т.д.) все это кэшируется т.к. построение меню из базы каждый раз при отдаче страницы так себе решение. И на смотря на все это работает просто и из коробки (NuGet).
Если навигация будет объемной, в виде дерева, то лучше посмотреть в сторону nested set. А если это типовая навигация из небольшого количества значений, то можно обойтись одной таблицей с parent_id привязкой к родителю.
Честно говоря пока я сам не знаю во что все выльется, но все равно спасибо. Сейчас проект в стадии - чистейшая импровизация:) И он предлагает быть изначально не слишком большим. Спасибо за nested set.