2010-07-07 4 views
1

У меня есть два списка sharepoint.Композитный внешний ключ в списке Sharepoint

List1 - Это содержит всех пользователей и имеет первичный ключ, как USERID List2 - Содержит все курсы и имеет первичный ключ, как CourseId

Теперь я хочу, чтобы определить третий список, который будет иметь свой первичный ключ в качестве составного ключа. List3 - содержит пользователей для сопоставления курсов. Таким образом, основным ключом является (UserId, CourseId) комбинация.

Когда я определяю List3, я добавляю столбцы со страницы «Параметры списка». Когда я создаю новый столбец, я могу выбрать Lookup и выбрать внешний ключ из другого списка. Но я не могу определить составной ключ. (где ключи поступают из другого списка).

Есть ли способ определить составной ключ для списка в sharepoint 2010?

Благодаря

ответ

4

Sharepoint не является базой данных и списки не являются таблицы. В Sharepoint нет первичных, внешних ключей или отношений (в смысле DB). Хотя метафора DB используется для объяснения Sharepoint, это всего лишь метафора, а не то, как работает Sharepoint. Ближайшей задачей Sharepoint, которую вы можете найти в мире базы данных, являются базы данных документов.

Возможно, вы путаете поля поиска с первичными ключами. Поле поиска - это поле, значения которого взяты из другого списка. Они не определяют отношения между списками. Тем не менее, Sharepoint 2010 позволяет применять ограничения на удаление, чтобы вы не могли удалить элемент списка, который используется как значение поиска в другом списке. Это устанавливается на уровне поля поиска и только в том случае, если поле поиска позволяет выбрать один вариант.

Чтобы установить ограничение программно, используйте свойство SPFieldLookup.RelationshipDeleteBehavior. Чтобы установить ограничение из пользовательского интерфейса, найдите поле поиска в настройках целевого списка, откройте его настройки и включите «Enforce Relationship Behavior» в разделе «Отношения».