2010-07-07 69 views
1

我有两个共享点列表。共享点列表中的复合外键

列表1 - 这包含所有用户和具有主键用户ID 列表2 - 这包含所有课程,并有主键CourseId

现在我想要定义,将有其主键复合键榜第三。 List3 - 这包含用户到课程的映射。所以主键是(UserId,CourseId)组合。

当我定义List3时,我从列表设置页面添加列。当我创建一个新列时,我可以选择查找并从另一个列表中选择外键。但我无法定义组合键。 (钥匙来自不同的列表)。

有没有办法为sharepoint 2010中的列表定义组合键?

谢谢

回答

4

Sharepoint不是数据库,列表不是表格。在Sharepoint中没有主键,外键或关系(在数据库中)。虽然数据库隐喻用于解释Sharepoint,但它仅仅是一个比喻,而不是Sharepoint的工作方式。您可以在数据库中找到最接近Sharepoint的文档数据库。

也许你在使用主键混淆查找字段。查找字段是其值来自另一个列表的字段。他们没有定义列表之间的关系。也就是说,Sharepoint 2010允许您强制执行删除约束,以便您不能删除用作另一个列表中的查找值的列表项。这是在查找字段级别设置的,并且只有在查找字段允许单一选择的情况下。

要以编程方式设置限制,请使用SPFieldLookup.RelationshipDeleteBehavior属性。要从UI设置限制,请在目标列表设置中找到查找字段,打开其设置并在“关系”部分中启用“Enforce Relationship Behavior”。