我有一个事实表,它有一个RESOURCE_ID链接到资源表。资源有一个角色,它本身就是一种资源。
.– FACTTABLE–。|标识符| .–资源—。| RESOURCE_ID | —-…
好的,我发现了如何做到这一点。
由于角色和资源都来自表格 RESOURCE 蒙德里安无法处理这个并进入一个循环。
RESOURCE
我用一个别名来解决这个问题 RESOURCE 表:
<Table name="resource" schema="public" keyColumn="id" alias="role"/>
要让Mondrian知道哪个资源属于哪个角色,您需要链接两个表。
因此资源表有一个关键是很重要的:
<Table name="resource" schema="public" keyColumn="id"/>
现在您可以将资源链接到它的角色:
<Link target='resource' source='role' foreignKeyColumn='role_id'/>
最初令人困惑的是,角色维需要表资源。那是因为事实表只知道 RESOURCE_ID 而不是 ROLE_ID 。但由于每个资源都与其角色相关联,因此您可以使用“属性”来定义角色特定字段。
RESOURCE_ID
ROLE_ID
<Dimension name="Role" table="resource" key="ID"> <Attributes> <Attribute name="ID" keyColumn="id" hasHierarchy="false"/> <Attribute name="Title" table="role" keyColumn="title"/> </Attributes> </Dimension>
要使用维度,我们必须使用立方体维度中的维度并链接 RESOURCE_ID 事实表对角色维度的影响。
用途:
<Dimension source="Role"/>
DimensionLinks:
<ForeignKeyLink dimension="Role" foreignKeyColumn="resource_id"/>