设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

12
返回列表 发新帖
楼主: bluebird73
打印 上一主题 下一主题

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

[复制链接]
11#
 楼主| 发表于 2009-1-22 10:48:56 | 只看该作者
Liwen兄的建议:

将表改字段改为:
项目编号 / 传递年份 /  传递值 / 传递类型(传递动物/分配动物/农户。。。)
这样只用四个字段,并且以后新增传递年份不用更改表了。

[ 本帖最后由 liwen 于 2009-1-21 13:34 编辑 ]
========

我试了一下,还是不好用呢?项目编号将会出现多个,比如:

项目编号      年份    数据    数据类型

22-0015-01    1998上   20     分配农户
22-0015-01    1998上      160      分配动物
22-0015-01    1998上   15     传递农户
22-0015-01    1998上   150     传递动物
22-0015-01    1998上   5      培训期数
22-0015-01    1998上   28     受训男数
22-0015-01    1998上   12     受训女数

是这样建表么?这样一来,“项目编号”就一定不能做为主键了,因为有重复数据。这样建表似乎可以解决这七种数据类型的统计,其他“一对一”的数据就采用主键的方式,比如项目编号对应的实施时间、预算、投资方等都是一对一的情况,可以采用主键方式。

这样是否可行呢?与第二位朋友todaynew的建议有何区别呢?

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

Todaynew的建议我还在消化之中,感觉不太明白。希望能继续提供帮助。这个传递方向是什么意思呢?统计期是否就是我几十个半年的字段名?

[ 本帖最后由 bluebird73 于 2009-1-22 10:54 编辑 ]
12#
 楼主| 发表于 2009-1-22 11:06:44 | 只看该作者
如果按Todaynew的建议,是不是培训表中成了下表这个样子?每一个项目编号要重复很多次,有多少个半年度就要重复多少次了。现在有64个半年度,每一个项目编号就要重复64次,共有112个项目编号,则共有记录数:112x64=7168.

这样行不行呢?感谢大家继续提供帮助。


项目编号         半年度        受训男        受训女        培训期次
22-0017-01        1998上        5        6        20
22-0017-01        1998下        32        11        13
22-0017-01        1999上        17        4        24
22-0017-01        1999下        52        2        22
22-0017-01        2000上        80        4        8
22-0017-01        2000下        61        5        5
22-0017-01        2001上        32        13        20
22-0017-01        2001下        41        7        13
22-0017-01        2002上        40        26        24
22-0017-01        2002下        88        4        15
22-0017-01        2003上        35        20        8
22-0017-01        2003下        9        40        5
22-0017-01        2004上        42        6        12
22-0017-01        2004下        74        6        3
22-0017-01        2005上        68        5        12
22-0017-01        2005下        39                2
22-0017-01        2006上        29        4        9
22-0017-01        2006下        38        10        17
22-0017-01        2007上        61        1        10
22-0017-01        2007下        53        28        12
22-0017-01        2008上        122        12        29
22-0017-01        2008下        42        10        3
22-0017-01        2009上        20        10        7
22-0017-01        2009下        41        10        13
22-0017-01        2010上        21        8        5
22-0017-01        2010下        17        6        6
22-0017-01        2011上        0        11        3
22-0017-01        2011下        46        4        2
22-0017-01        2012上        6        2        9
22-0017-01        2012下        11        4        10
22-0017-01        2013上        4        5        9
22-0017-01        2013下        2        13        17
22-0017-02        1998上        4        7        52
22-0017-02        1998下        5        26        5
22-0017-02        1999上        13        4        7
22-0017-02        1999下        7        20        13
22-0017-02        2000上        26        40        11
22-0017-02        2000下        4        6        9
22-0017-02        2001上        20        6        13
22-0017-02        2001下        40        5        9
22-0017-02        2002上        6        6        3
22-0017-02        2002下        6        11        1
22-0017-02        2003上        5        4        15
22-0017-02        2003下                2        4
22-0017-02        2004上        4        4        17
22-0017-02        2004下        10        5        9
22-0017-02        2005上        1        13        20
22-0017-02        2005下        28        7        12
22-0017-02        2006上        12        26        12
22-0017-02        2006下        10        4        6
22-0017-02        2007上        10        20        9
22-0017-02        2007下        6        40        5
22-0017-02        2008上        11        6        9
22-0017-02        2008下        4        6        13
22-0017-02        2009上        2        5        9
22-0017-02        2009下        4                3
22-0017-02        2010上        5        4        1
22-0017-02        2010下        13        10        15
22-0017-02        2011上        7        1        4
22-0017-02        2011下        26        28        17
22-0017-02        2012上        4        12        9
22-0017-02        2012下        20        10        9
22-0017-02        2013上        40        10        13
22-0017-02        2013下        6        10        9

[ 本帖最后由 bluebird73 于 2009-1-22 11:12 编辑 ]
13#
发表于 2009-1-22 11:23:01 | 只看该作者
1、培训表:项目ID(外键),培训期次,性别,培训人数。

这样好像合理一些

2、此外应该是112*2=224条记录,呵呵。

3、Liwen同志所论和我说的基本一致,所不同的是他建议你把数据类型类似的表整合在一起,用一个类型字段区别,这样表系就更为简化一些。我基本维持你现在的表系,只是对表的结构提出一些建议。从易于理解的角度来说,你可以先按我的建议简化你的表,在此基础上按照他的意见进一步整合。这样可以循序渐进,同时现有数据的导入也要方便一些。

4、传递方向:是根据你表中的数据看,有上传下传的问题,用这个字段做一个上传还是下传的分类。

5、统计期是否就是我几十个半年的字段名?yes

[ 本帖最后由 todaynew 于 2009-1-22 12:38 编辑 ]
14#
发表于 2009-1-22 11:34:57 | 只看该作者
原帖由 bluebird73 于 2009-1-22 10:41 发表
动物传递表:项目ID(外键),统计期,传递方向,传递数量
农户传递表:项目ID(外键),统计期,传递方向,传递数量
动物分配表:项目ID(外键),统计期,分配方向,分配数量
农户分配表:项目ID(外键),统计 ...


这个问题可以用以后的查询来解决,比如你想按年度横向展开表,这时你需要做一个交叉查询。
15#
发表于 2009-1-22 11:36:40 | 只看该作者
半年度
建议直接用实际受训日期,然后用查询得到上下半年
16#
 楼主| 发表于 2009-1-22 13:06:32 | 只看该作者
原帖由 todaynew 于 2009-1-22 11:34 发表


这个问题可以用以后的查询来解决,比如你想按年度横向展开表,这时你需要做一个交叉查询。


谢谢todaynew答疑解惑。我还是弄不明白,因为现在的焦点问题是:
1)每一个编号都要统计64个半年的七种数据(分配农户、传递农户、分配动物、传递动物、培训期数、受训男、受训女),这七种数据每半年都有新的数据产生。比如2009上又会有新的数据产生。我每一个半年都要录入一次,并且希望他们通过查询实现自动汇总。

2)你现在把统计期与项目编号对应起来,如何实现一个编号对应的64个半年的七种数据录入呢?

你有没有QQ号?我好想与你直接交流。我的QQ号是:75087986
17#
发表于 2009-1-22 20:32:22 | 只看该作者
1、一个项目怎么可能实施32年呢?呵呵,通常也就两三年一个项目吧?如果真都是长期项目也是一样管理。

2、因为你的七张表中都有项目ID,因此便可以按照这个项目ID进行分类统计。比如培训人数可以按照年度分组统计每年所有项目的培训人数;也可以按照项目ID分组统计该项目几年以来共培训的人数;还可以按照年度和项目ID分组,统计每个年度内各项目的培训人数。这些都是查询问题,需要在表建立起来以后,根据各种需要随时进行不同的分类统计。也就是说记录之间也是可以进行统计运算的。

3、在表的设计阶段着重应该关注的是表内和表间关系清晰明确,同时要减少数据冗余,使得后期的查询设计、窗体设计、报表设计等简单方便。你现在的主要问题在表的设计上不合理,要先从这个角度解决问题。

4、从你现有的数据来看,项目表是一个最为主要和基础的表,它和所有的表都在项目ID(你原来叫项目编号也一样)上建立一对多的表间关系。可以先把这个关系理清楚。

5、不必特别关心日期的问题,任何一个系统中日期必然是一个不可或缺的字段,因为事物的发展无不从时间维上展开。对于日期或者时间通常只能给一个字段,其道理在于时间在不断流逝,你总不能让字段无限增长吧?呵呵。所以必须将日期横向沿字段展开的思路变换为沿记录纵向展开的思路。这样并不意味着你没法看日期横向展开的数据,实现这个要求需要建立交叉查询而已。

[ 本帖最后由 todaynew 于 2009-1-22 20:53 编辑 ]
18#
发表于 2009-1-24 16:53:13 | 只看该作者
大体给你整理了一下,可能数据导入是会有错误你需自己核对.

本帖子中包含更多资源

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

x
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-1-10 19:50 , Processed in 0.093705 second(s), 30 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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