policyperiod我正在尝试在和之间创建一个 SQL 查询effectDatedFields来获取effectedDatedFields特定policyperiod. 我不知道该怎么做。我在两个表中都找不到指向另一个表的任何外键。任何帮助将不胜感激。
我已经查看了两个表中的每一列,以寻找可以加入的内容。我已经查看了两个实体的数据字典。我什至接受了导丝教育,并查看了一些数据模型部分,以尝试找出如何在数据库中建立一对一关系的模型。
关于有效日期字段和切片的其他答案都很好,但我想对 @SteveDrippsCentricConsulting 的声明进行澄清,他说:“一对一数据模型元素旨在允许循环引用(出于所有实际目的) ),但实际上并没有在数据库中创建循环引用。 ”这部分关于 Guidewire 实体模型的部分不太正确。
如果要创建“软”或间接循环引用,而不在数据库中创建硬循环引用(这很糟糕),则应使用边缘外键将关系提取到关联表中。
一对一关系的目的是指示基数为 1 的两个表之间的外键关系(因此是一对一)。它类似于数组关系,表示基数为一对多的外键关系。本质上,一对一是仅限于单个元素的数组关系。
从数据角度来看,两者基本相同。FK 关系通常定义为父子关系,子级上有 FK 列(这适用于大多数 RDBMS)。在Guidewire中,将在父表上定义正确定义的一对一或数组关系,并在子表上定义相应的FK列,并且平台将自动在两者之间定义FK约束。未能在子项上定义 FK 将导致 ISStudio 中显示警告。(请注意,反之则不然:如果您在子级上定义 FK 并且不在父级上定义一对一或数组,您将不会收到警告;平台假定您正在尝试创建一个没有数据库约束的单向 FK。许多开发人员在应该创建一对一关系(双向并自动生成数据库约束)时却创建了单向 FK 关系。)
一对一和数组之间的区别在于,Guidewire 平台会自动在数据库和应用程序中强制执行基数为 1 的情况。此外,Guidewire 平台还提供子记录的自动删除功能。当您定义一对一或数组时,请确保属性“cascadeDelete”设置为 true,这样当删除父记录时,子记录也会被删除。如果不这样做,可能会导致孤立记录,这是 DBCC 错误的常见原因,以及清除和/或归档问题。
另请注意,您可以更改 FK 关系的标准父子行为。这可以使用属性“archivingOwner”在 FK 定义中的子表上完成。默认值为“target”,表示 FK 的目标是父级(标准 FK 关系)。将值设置为“source”表示具有 FK 的实体充当父实体,表示反向 FK 关系。值“none”表示根本没有父子关系。使用值“源”或“无”更改关系可能会导致孤立记录、清除、存档问题,如果设计不当,可能会导致数据丢失或损坏。任何此类更改都必须仔细考虑和测试。
| 归档时间: |
|
| 查看次数: |
281 次 |
| 最近记录: |