Стратегии SharePoint многие-ко-многим - PullRequest
0 голосов
/ 10 августа 2009

У меня есть семейство сайтов SharePoint, которое содержит пользовательское определение сайта и пару десятков развернутых сайтов для «Проекта». Каждый проект содержит много «Документов» (каждый представлен реальным документом и сайтом о документе). Таким образом, в настоящее время это отношение одного проекта ко многим документам, и моя текущая конфигурация sharepoint для каждого сайта Project, имеющего собственную библиотеку документов для представления документов, кажется, работает нормально. Моя конфигурация также создает сайт для каждого документа под сайтом проекта с URL-адресом типа http://myserver/project1/document1.

Теперь бизнес-требования изменились, и теперь имеет смысл для документа быть потенциально связанным с несколькими и произвольными проектами. Поскольку каждый Документ в настоящее время находится в списке на одном сайте Project, что-то должно измениться. Какой хороший способ смоделировать это? FWIW, количество Документов в настоящее время составляет порядка двух сотен, а в ближайшие несколько лет рост может составить пару тысяч.

Моя мысль состоит в том, чтобы перенести все мои существующие списки документов на основе проектов в единый глобальный список документов. Затем я должен был бы каким-то образом заново создать виртуальные списки в каждом проекте, в которых отображаются все документы, доступные из этого проекта. Логически это будет фильтрованное представление глобального списка. Это разумный подход? Если так, то ...

  1. Каков наилучший способ перемещения элементов Документа и связанных сайтов из одного проекта в глобальную область?
  2. Каков наилучший способ создания этих отфильтрованных Проектом представлений глобального списка документов таким образом, чтобы автоматически приспосабливаться к созданию нового сайта проекта, показывая правильные документы для этого проекта?

Ответы [ 2 ]

0 голосов
/ 11 августа 2009

Для автоматизации создания сайтов на основе документов я предлагаю вам использовать ItemEventReceiver, связанный с глобальным списком или, что еще лучше, с пользовательским типом контента. Когда элемент добавлен, вы создаете сайт.

Я предлагаю вам также создать список ProjectSites и список DocumentProjectSites. Список DocumentProjectSites содержит два поля LookupMulti, одно из которых связано с Document Lib, а другое со списком ProjectSites.

Чтобы полностью включить автоматизацию, добавьте приемник событий удаления сайтов на сайты документов, чтобы обновить списки DocumentProjectSites и ProjectSites.

0 голосов
/ 11 августа 2009

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

У меня будет соблазн создать семейство сайтов для каждого документа (и его сайта) по управляемому пути и использовать список на каждом сайте проекта, чтобы определить, какие сайты документов я просматриваю для получения документов.Хотя на расстоянии все довольно сложно выбрать.

...