第 9 课:指定查找实体
新建日期: 2005 年 12 月 5 日
某些实体可能只包含一个创建报表的用户感兴趣的属性。例如,在“产品子类别”实体中,报表生成器用户可能只对 Name 属性感兴趣。可以将角色更改为“查找实体**”,而不是要求模型用户在每次向其报表添加属性时导航到包含该属性的实体。当角色转换为查找实体时,标识属性将会显示为父实体中的一个字段。例如,如果将“产品子类别”实体更改为查找实体,则“产品子类别”的 Name 属性将会针对报表生成器用户显示为“产品”实体的一个字段,而不是角色。
通常,当信息采用层次结构格式时,将角色更改为查找实体十分有用。例如,如果具有“市县”和“省/市/自治区”两个单独的实体,并且“省/市/自治区”是“市县”实体的角色,则可能需要将“省/市/自治区”角色转换为查找实体以使其在“市县”实体中显示为一个字段。此外,如果“国家/地区”实体是“省/市/自治区”实体的角色,则可能需要将“国家/地区”角色标记为查找实体并进行提升,以便也可将其视为查找实体并针对报表生成器用户显示为“市县”实体中的一个字段。对于此操作而言,使层次结构非规范化是一个常用建模术语。
要作为查找实体使用的实体可以只有一个在 IdentifyingAttribute 属性中指定的特性。标识属性是唯一标识实体的属性,例如,“产品类别”的 Name 属性唯一标识每个产品类别。指定为标识属性的属性是指在将实体转换为查找实体时显示于父实体中的属性。
若要将实体转换为查找实体,请将 IsLookup 属性更改为 True。若要将实体的层次结构链转换为查找实体,还需要将 PromoteLookup 属性设置为 True。例如,假设“国家/地区”角色是“省/市/自治区”实体中的查找实体,并且现在要将“国家/地区”角色显示为“市县”实体中的一个字段,则也要将“省/市/自治区”实体中“国家/地区”角色的 PromoteLookup 属性指定为 True。在本课中,您将更改“产品子类别”角色,使其成为“产品”实体的查找实体,然后将“产品类别”角色转换为“产品子类别”实体的查找实体并进行提升,使其也显示为“产品”实体中的一个字段。
指定查找实体
返回到 SQL Server Business Intelligence Development Studio 窗口中的 AdventureWorks 模型。
在树视图中,展开**“产品详细信息”**文件夹。
选择**“产品子类别”**实体。
**“产品子类别”实体只有一个 IdentifyingAttribute:“名称”**字段。一个查找实体只能有一个 IdentifyingAttribute。
在“属性”窗口中,找到 IsLookup 属性,再选择 True。
部署报表模型时,“产品子类别”实体将显示为“产品”实体中的一个字段。
将实体提升为查找实体
在树视图中,选择**“产品类别”**实体。
在“属性”窗口中,找到 IsLookup 属性,再选择 True。
在树视图中,选择**“产品子类别”**实体。
在列表视图中,选择**“产品类别”**角色。
在“属性”窗口中,找到 PromoteLookup 属性,再选择 True。
设置此属性会提升“产品类别”查找实体,使其也显示为“产品”实体中的一个属性。
重新组织实体中的属性
在树视图中,选择**“产品”**实体。
在列表视图中,右键单击**“产品子类别”实体,再选择“上移”**。
单击**“上移”,直到“产品子类别”**实体显示在 Name 属性的下面。
在**“文件”菜单中,单击“全部保存”**。
后续步骤
现在,用户不需要导航到“产品类别”或“产品子类别”实体来查找类别或子类别的名称。相反,每个实体都显示为“产品”实体中的一个字段,用户可以像添加任何其他字段一样,将这些字段添加到其报表中。
在下一课中,您将更改某个实体的属性,以使该实体继承其他实体中的字段。请参阅第 10 课:继承其他实体的属性。