3

我有一个很好的 SQL Server 数据库设置,其中包含 2 个具有一对多关系的表。像这样的东西:

类型:

ID   Type
===========
1    mammal    
2    fish    
3    insect

宠物:

ID    Name   Foreign Key
=======================
1    Paris   1 (mammal)    
2    Michael 2 (fish)    
3    Mardy   1 (mammal)

我到底如何在 CRM 中重新创建它?我知道 CRM 喜欢创建自己的主键 GUID 和关系字段。我想保持我的表格关系的完整性,特别是因为我将通过脚本定期导入大量数据(100 万+记录),而不是通过 crm gui 创建记录和关系。谢谢。

4

2 回答 2

4

在同样的情况下,我创建了两个带有附加字段的实体 - 整数 ID。关系是 CRM 默认的一种。如果您想在“宠物”表单上“保留”“类型”实体的 ID,您可以在“宠物”表单上添加额外的隐藏字段(整数 - Type_ID)。并在类型更改时更新此内容。

如果您仅从脚本中使用这些实体,我认为这个隐藏的 Type_ID 是不必要的。也许查询性能不会很理想,但这有效:)

编辑:还有一件事,如果您需要在 CRM 中生成 ID,则必须创建用于生成唯一 ID 的插件,该插件将在实体创建时执行。

希望能帮助到你

于 2012-10-17T12:15:29.637 回答
2

由于 CRM 将其 PK 存储为 GUID,因此您只能通过这些 GUID 定义 FK。

正如 lazarus 所说,创建 Pets 和 PetTypes 实体都包含一个ExternalID int字段。

您的导入脚本需要查找要导入的每条记录的两个 GUID:

read record
lookup PetTypes Guid for PetTypes.ExternalID = [pettype.id from record]
create if not exists
lookup Pets Guid for Pets.ExternalID = [id from record]
create if not exists
set Pets.PetTypes = new EntityReference() with PetTypes.ID (=guid)
save crm record
于 2012-10-17T12:24:47.800 回答