Наилучшая практика для отношений «многие ко многим» между элементами дерева контента? - PullRequest
1 голос
/ 18 февраля 2010

В моем дереве контента у меня есть дерево элементов контента, которые представляют города. Для каждого из них я хочу иметь логические связи с рядом ... скажем ... Национальных парков, которые находятся в двух часах езды. Таким образом, в городе будет несколько парков ... и каждый набор будет отличаться ... но, конечно, парк также будет связан с более чем одним городом.

Какой тип настройки предмета и поля хорошо подходит для такой ситуации? Я буду создавать пользовательский рендерер для этих элементов, поэтому меня больше всего интересует, как это должно выглядеть в Sitecore, чтобы максимизировать простоту использования и производительность.

Я использую Sitecore 6.2.

(перекрестная публикация из SDN, пожалуйста, прости меня ... но я хочу призвать больше сообщества Sitecore здесь, на StackOverflow)

Ответы [ 3 ]

2 голосов
/ 18 февраля 2010

Для такого рода отношений вам понадобится следующая структура:

Дом

   Cities

       NY
       London
       Paris

   Parks

       Park1
       Park2
       Park3

Шаблон "Город" должен иметь поле типа Multilist с именем "Парки".Soulrce этого поля следует искать в корне парков (Главная> Парки).Точно так же шаблон «Парк» имеет поле Multilist под названием «Города».Источник этого поля должен искать корень городов (Главная> Города).

Таким образом, вы легко сможете выполнить любой запрос.

Надеюсь, это поможет.

2 голосов
/ 18 февраля 2010

Если соединение должно быть обоими способами, то одним способом, которым вы могли бы его обработать, является добавление некоторого кода в событие сохранения.

Давайте предположим, что у нас есть шаблон City с полем, называемым «Related Parks», ишаблон парка с полем «Связанные города».

Скажем, мы сохраняем элемент Город с двумя парками в поле "Связанные парки".В случае сохранения мы могли бы извлечь два парка и вставить текущий город в поле «Связанные города» этих парков.

Я не обязательно говорю, что это лучший способ сделать это, простодругой вариант.

0 голосов
/ 18 февраля 2010

Собираетесь ли вы делать какие-либо поиски из парка в город? Например, нужно ли вам сказать «найти все города, связанные с данным парком»? Или это будет просто «найти все парки, связанные с данным городом»? Если вам нужно выполнить поиск в обоих направлениях, все становится немного сложнее, и я, вероятно, рекомендую использовать поисковый индекс. Однако, если ваш поиск выполняется только в одном направлении, вы можете просто использовать поле древовидного списка, чтобы связать один элемент со многими другими.

Из вашего описания я не совсем уверен, нужно ли вам на самом деле использовать это отношение «многие ко многим» или вам нужен только один путь ко многим?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...