Динамическая SiteMap, BreadCrumb на основе нескольких таблиц - PullRequest
1 голос
/ 21 января 2012

У меня есть около 20 разных таблиц, в каждую из которых встроены разные родительские / дочерние отношения. Меня недавно попросили создать крошку и карту сайта для нашего веб-сайта на основе всех этих таблиц.

Одна идея, которая у меня была, заключалась в том, чтобы удалить отношения родитель / потомок из каждой из этих таблиц и создать в основном одну таблицу, содержащую id и parentId, и всякий раз, когда мне нужно получить отношения родительского и дочернего, я просто присоединяюсь к таблице parent_child_relationships, чтобы с какого бы стола я ни брал.

Имеет ли это смысл?

Во всяком случае, проблема с этой идеей в том, что мне это не нравится. ха-ха.

У кого-нибудь еще есть идеи, как это можно сделать? Или какой правильный способ построения хлебной крошки и карты сайта на основе сайта, состоящего из 20 таблиц или около того?

Если это поможет, мой сайт состоит из asp.net, ColdFusion и использует базу данных MSSQL.

Спасибо!

1 Ответ

1 голос
/ 22 января 2012

Не позволяйте реализации пользовательского интерфейса влиять на дизайн вашей модели и особенно на вашу БД.Прототипируйте интерфейс, привлекайте ваших клиентов, дайте им возможность высказаться.Создайте свои хлебные крошки и карту сайта, не привязав их изначально к вашей реальной БД.Как только ваш клиент скажет «это то, что мы хотим, просто так», затем заморозьте прототип, а затем поработайте над фактической реализацией - как ваше приложение будет запрашивать данные, какой тип объекта данных вы будете использовать И ТОГДА строить свою БД,

«У меня была одна идея - удалить отношения родитель / потомок из каждой из этих таблиц и создать в основном одну таблицу, содержащую id и parentId»

Это не очень масштабируемое решение, сделайтене * обратная нормализация вашей базы данных.Следуйте стандартным методам моделирования / нормализации баз данных.Множество маленьких таблиц с множеством ассоциативных таблиц.

...