设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

12下一页
返回列表 发新帖
查看: 3126|回复: 17
打印 上一主题 下一主题

[表] 主键112个记录,字段32个收集7种数据建7张表遇到难题(附件是数据库)

[复制链接]
跳转到指定楼层
1#
发表于 2009-1-20 21:52:22 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
图片现在可以看了,并且我上传了数据库,请各位朋友帮助优化一下数据库中的表,好不好?
我刚开始学ACCESS,醉心于它强大的功能,但是我感觉我的表建得有问题。 


 有一ACCESS问题,希望好心人顺手帮一下。
  我用ACCESS 2003组建了一个项目管理数据库,用来管理我
工作上要用到的100多个项目编号的所有数据,效率一下子比以前
提高了好多,不过,我在处理以下这些数据时,隐隐觉得大大地
不妥,定有上佳之良策,让数据处理更加高效。
  建了7张表,分别收集7种数据类型:分配农户数,分配动物
数,传递农户数,传递动物数,培训期数,受训男人数,受训女
人数。每张表的主键(目前共112个)和字段完全一样(字段共32个)。
这6种数据类型相互关联紧密,比如分配农户和传递农户
要求和,分配和传递横向每个编号要求和,纵向112个编号也要求和。以后每
年要添加新的主键(项目编号),也要添加字段,即2009上,2009下,
2010上,2010下,2011上,2011下等等。

  目前表内的32个字段是:
1993上,1993下,1994上,1994下,1995上,1995下,1996上,
1996下,1997上,1997下,1998上,1998下,1999上,1999下,
2000上,2000下,2001上,2001下,2002上,2002下,2003上,
2003下,2004上,2004下,2005上,2005下,2006上,2006下,
2007上,2007下,2008上,2008下

  最后要汇总形成类似下图的一个查询结果。
1993~2008年,项目数据汇总结果:






  或者任意给定2个年份之间的数据自动按上表汇总,也可任意2个半年之间进行
汇总,最后得出需要的数据。ACCESS一定可以让我随心所欲地管理数据。只要原始
数据在那里,它就有办法帮我灵活处理。但是,我还是ACCESS未入门者,因此要
实现以上任务非常困难。


  以上数据统计需求是否可以采用一张表搞定?我建了7张表,
修改起来太也麻烦,比如添加了一个编号就要在另外6张表里去
相应添加,添加了一个字段,又得在其他表中去同样添加。

  查询时,现在的7张表也颇为麻烦,导出到Excel表里时,32
个字段一字排开,7种数据放在一起就是7x32=224列,看得我眼
花啊……我想能不能让它们在查询时就自动进行求和运算?还有,
我严重怀疑我这样建表太笨……有没有更好的办法?

  有人建议直接用EXCEL就行了,但是我的数据查询是灵活多变的,
以项目编号和时间作为关键查询条件,编号对应实施地点,是另一张
表(里面只有1个字段--实施地点,主键是项目编号),时间可以
灵活地设置,任一2年间都可以查询。用Excel的话,就没有办法与另
一张表的“实施地点”进行对应了。比如我要查这112个项目编号中,
在四川实施的编号对应的1998-2008年的所有“分配农户”数。据我
粗浅的数据库知识,用EXCEL好像不行的。


  以上敬盼解惑。





[ 本帖最后由 bluebird73 于 2009-1-21 10:46 编辑 ]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2009-1-20 22:16:01 | 只看该作者
看不到图
有一点可以肯定你的表设计有问题
3#
发表于 2009-1-20 22:29:17 | 只看该作者
主键112个字段
是不是有点离谱
4#
发表于 2009-1-20 22:45:21 | 只看该作者
最好是把数据拿出来晒一晒,大家才能出主意。
这样建立表格,可能要用到联合查询。具体的方法可以参看MSDN上的内容。
5#
 楼主| 发表于 2009-1-21 10:15:09 | 只看该作者
楼上的,非常感谢,我修改了主帖,上传了数据库作为附件,并且也让图片可以显示了。请你帮忙看看,如何优化设计?
  下图是我的一张表中的字段,暂还没有32个,但以后会越来越多。
6#
发表于 2009-1-21 13:29:03 | 只看该作者
将表改字段改为:
项目编号 / 传递年份 /  传递值 / 传递类型(传递动物/分配动物/农户。。。)
这样只用四个字段,并且以后新增传递年份不用更改表了。

[ 本帖最后由 liwen 于 2009-1-21 13:34 编辑 ]
7#
发表于 2009-1-21 15:17:41 | 只看该作者
项目表:项目ID(主键),中文名称,英文名称,批准日期,财政年度,结束日期,项目状态,评估时间,备注
实施方表:项目ID(外键),单位名称,实施地点,省份,区域,备注
投资方表:项目ID(外键),投资人名称,投资金额,投资条件,备注
培训表:项目ID(外键),培训期,培训人数
动物传递表:项目ID(外键),统计期,传递方向,传递数量
农户传递表:项目ID(外键),统计期,传递方向,传递数量
动物分配表:项目ID(外键),统计期,分配方向,分配数量
农户分配表:项目ID(外键),统计期,分配方向,分配数量
。。。。。
余下表按此思路设计便可。

[ 本帖最后由 todaynew 于 2009-1-21 15:23 编辑 ]
8#
发表于 2009-1-22 10:24:44 | 只看该作者
楼上的建表方式正解
9#
 楼主| 发表于 2009-1-22 10:36:14 | 只看该作者
太棒了,我马上开始修改。遇到新的问题再来问大家哟。感谢大家不嫌弃我的水平低。如果大家遇到英文方面的问题,我愿意提供帮助。

非常感谢。
10#
 楼主| 发表于 2009-1-22 10:41:51 | 只看该作者
动物传递表:项目ID(外键),统计期,传递方向,传递数量
农户传递表:项目ID(外键),统计期,传递方向,传递数量
动物分配表:项目ID(外键),统计期,分配方向,分配数量
农户分配表:项目ID(外键),统计期,分配方向,分配数量


请这位老师解释一下,这四张表中,如何做到统计几十个半年期数据的?因为项目ID在左边,右边对应字段,但你只设计了一个统计期,如何统计出一个项目ID对应的多个半年的数据,比如(1998上,1998下。。。。一直到2008上,2008下)

还有,分配方向是放什么数据呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-11-15 01:11 , Processed in 0.100040 second(s), 34 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表