Shared dimensions
When generating the SQL for a join, mondrian needs to know which column to join to. If you are
joining to a join, then you need to tell it which of the tables in the join that column belongs to
(usually it will be the first table in the join).
Because shared dimensions don't belong to a cube, you have to give them an explicit table (or
other data source). When you use them in a particular cube, you specify the foreign key. This
example shows the Store Type dimension being joined to the Sales cube using the
sales_fact_1997.store_id foreign key, and to the Warehouse cube using the
warehouse.warehouse_store_id foreign key:
<Dimension name="Store Type">
<Hierarchy hasAll="true" primaryKey="store_id">
<Table name="store"/>
<Level name="Store Type" column="store_type" uniqueMembers="true"/>
</Hierarchy>
</Dimension>
<Cube name="Sales">
<Table name="sales_fact_1997"/>
...
<DimensionUsage name="Store Type" source="Store Type"
foreignKey="store_id"/>
</Cube>
<Cube name="Warehouse">
<Table name="warehouse"/>
...
<DimensionUsage name="Store Type" source="Store Type"
foreignKey="warehouse_store_id"/>
</Cube>
本文介绍了在使用Mondrian生成SQL连接查询时如何指定连接字段,特别是对于不属于特定立方体的共享维度,需要显式地指定其表或数据源,并在不同立方体中通过外键进行引用。
1万+

被折叠的 条评论
为什么被折叠?



