我的想法是:为每年的数据建一个表,下一年的数据来了,新增一个表即可。但有一个关键的问题:是用地区还是用指标作为表的列,以2000年的表为例:一、用地区作为列,表结构形如:
郑州市 开封市 洛阳市 ...
GDP 5亿 3亿 2亿
总人口 500万 400万 300万
...二、用指标作为列
GDP 总人口
郑州市 5亿 500万
开封市 3亿 400万
洛阳市 2亿 300万用地区作为列的好处是,就单年而言,表结构是固定的,当然不同年份的表的结构是不同的,主要受行政单元变更的影响。
用指标作为列,由于数据是不断增加的,因此表的列数也会随之增加,表结构的变化无疑对数据库的维护不利。
但是,由于这些统计指标应该是作为地区的属性出现的,所以说应该把它们作为列才更符合人们的思维习惯。我感到很矛盾,该怎么办呢?
郑州市 开封市 洛阳市 ...
GDP 5亿 3亿 2亿
总人口 500万 400万 300万
...二、用指标作为列
GDP 总人口
郑州市 5亿 500万
开封市 3亿 400万
洛阳市 2亿 300万用地区作为列的好处是,就单年而言,表结构是固定的,当然不同年份的表的结构是不同的,主要受行政单元变更的影响。
用指标作为列,由于数据是不断增加的,因此表的列数也会随之增加,表结构的变化无疑对数据库的维护不利。
但是,由于这些统计指标应该是作为地区的属性出现的,所以说应该把它们作为列才更符合人们的思维习惯。我感到很矛盾,该怎么办呢?
因为分成了 省——地区——县——乡——村共5个级别,所以要考虑地区编号的问题,以方便按地区统计;时间字段方便按时间段统计数据;地区名称 地区编号 GDP 总人口 时间
郑州市 0101 5亿 500万 2003.1
开封市 0102 3亿 400万 2003.1
洛阳市 0103 2亿 300万 2003.1
---------------
地理ID INTEGER
时间ID INTEGER
指标ID INTEGER
指标值 NUMBER再建三个维表:地理维表、时间维表、指标维表
地理 时间 指标 指标值
-----------------------------
郑州市 2003.1 GDP 5亿
郑州市 2003.1 总人口 500万
开封市 2003.1 GDP 3亿
开封市 2003.1 总人口 400万
洛阳市 2003.1 GDP 2亿
洛阳市 2003.1 总人口 300万
顺便问一下,Oracle9i中一个表最多能有多少个字段呀?
---------------
地理ID INTEGER
时间ID INTEGER
指标ID INTEGER
指标值 NUMBER对地区ID表,请考虑用Tree型结构,以表示地区对县(区)的包含范围。
在实事表中仅记录最底层--县(区)的数据。