2.2数据库结构
在这个tiny的系统中,数据库有3个表tb_employee(职员表),tb_time(时间表),tb_salary(薪酬表)。表结构如下:
drop table tb_employee;
create table tb_employee
(
employee_id number, --职员id
employee_name varchar2(10) --职员姓名
);
drop table tb_time;
create table tb_time
(
time_id number, --时间id
the_year char(4), --年
the_month char(2) --月
);
drop table tb_salary;
create table tb_salary
(
employee_id number, --职员id
time_id number, --时间id
salary number(19,4) --薪酬
);
当然,为了使系统能够运行,还需要读者向数据库表中插入一些数据。
2.3根据数据库表的结构,书写schema文件
<?xml version="1.0"?>
<Schema name="Mondrian">
<Cube name="CubeTest">
<Table name="TB_SALARY" />
<Dimension name="Employee" foreignKey="EMPLOYEE_ID" >
<Hierarchy hasAll="true" primaryKey="EMPLOYEE_ID">
<Table name="TB_EMPLOYEE" />
<Level name="employeeId" column="EMPLOYEE_ID" uniqueMembers="true" >
<Property name="employeeName" column="EMPLOYEE_NAME"/>
</Level>
</Hierarchy>
</Dimension>
<Dimension name="Time" foreignKey="TIME_ID" >
<Hierarchy hasAll="false" primaryKey="TIME_ID" >
<Table name="TB_TIME" />
<Level name="year" column="THE_YEAR" uniqueMembers="false" />
<Level name="month" column="THE_MONTH" uniqueMembers="false" />
</Hierarchy>
</Dimension>
<Measure name="Salary" column="SALARY" aggregator="sum" />
</Cube>
</Schema>