0

3つのテーブルがあります-

1)学生-私のファクトテーブル(FKADDRESS_IDでアドレスを参照)

2)アドレス-このテーブルには、FKCOUNTRY_ID参照COUNTRYが含まれています

3)国-これには、表示するNAMECOLUMNがあります。(PK ID)

私はこれを書いたが、それが正しいかどうかわからない

基本的に私はStudent(FACT TABLE)をCOUNTRY ConsostsofFactに参加させたい---Def.. then this

<Dimension foreignKey="ADDRESS_ID" name="COUNTRY">
  <Hierarchy name="COUNTRY NAME" hasAll="true" primaryKey="IDENTIFIER" primaryKeyTable="ADDRESSES">
    <Join leftKey="IDENTIFIER" rightKey="IDENTIFIER">
      <Table name="ADDRESSES" >
      </Table>
      <Table name="COUNTRIES" >
      </Table>
    </Join>
    <Level name="Country Name" visible="true" table="COUNTRIES" column="NAME" nameColumn="NAME" uniqueMembers="false">
    </Level>
  </Hierarchy>
</Dimension>
4

1 に答える 1

0

結合が正しく行われていません。リレーショナル スキーマが次のようになっていると仮定します。

.-STUDENT-------.  
| IDENTIFIER PK |    .-ADDRESSES-----.
| ADDRESS_ID FK |----| IDENTIFIER PK |    .-COUNTRIES-----.
                     | COUNTRY_ID FK |----| IDENTIFIER PK |
                                          | NAME          |

JOIN 要素は、最小の粒度のディメンション テーブル ADDRESS と次のレベル (COUNTRY) の間の結合を作成する必要があります。これらのテーブルを結合するキーは、COUNTRY_ID (ADDRESS の場合) と IDENTIFIER (COUNTRY) です。次に、leftKey を COUNTRY_ID に設定する必要があります。

また、レベルの nameColumn 属性を使用していますが、これは実際にはメンバー名ではなく、レベル自体の名前を設定するために使用されます。これを削除します。全体として、次のようになります。

<Dimension foreignKey="ADDRESS_ID" name="COUNTRY">
  <Hierarchy name="COUNTRY NAME" hasAll="true" primaryKey="IDENTIFIER" primaryKeyTable="ADDRESSES">
    <Join leftKey="COUNTRY_ID" rightKey="IDENTIFIER">
      <Table name="ADDRESSES" >
      </Table>
      <Table name="COUNTRIES" >
      </Table>
    </Join>
    <Level name="Country Name" visible="true" table="COUNTRIES" column="NAME">
    </Level>
  </Hierarchy>
</Dimension>
于 2012-11-28T06:40:05.017 に答える