我的想法是:为每年的数据建一个表,下一年的数据来了,新增一个表即可。但有一个关键的问题:是用地区还是用指标作为表的列,以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万用地区作为列的好处是,就单年而言,表结构是固定的,当然不同年份的表的结构是不同的,主要受行政单元变更的影响。
用指标作为列,由于数据是不断增加的,因此表的列数也会随之增加,表结构的变化无疑对数据库的维护不利。
但是,由于这些统计指标应该是作为地区的属性出现的,所以说应该把它们作为列才更符合人们的思维习惯。我感到很矛盾,该怎么办呢?
解决方案 »
- 想请教大家一个问题: 现在数据库有两万条记录,有两个字段, 其中“流水号”字段 值唯一 、 “结果”字段 数值。 现在,我想用SQL语句,第一次随机选择某些
- 高手救命:http://127.0.0.1/isqlplus 打不开
- Oracle中创建一个带条件查询的存储过程
- HPUnix,安装了oracle 9i,内存不释放??
- 命令窗口中可以访问远程数据库,但在存储过程和函数中则不行???100!!
- spool 数据输出格式的问题.
- 性能问题:ORACLE 9i2,我们的数据库数据和客户的是相同的(IMPORT过来的),但是相同的PROCEDURE用T_CURSOR返回记录做查询,我们这边只需要1,2
- rman 备份
- 请教,oracle中关于case表达式的问题
- 我的企业管理器(OEM)里看不到数据库(database)会是什么原因!如何设置!
- 变异表的问题
- 哪位大哥愿意帮小弟一个问题....DB2D的
因为分成了 省——地区——县——乡——村共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型结构,以表示地区对县(区)的包含范围。
在实事表中仅记录最底层--县(区)的数据。