难题征求最佳解决方案
我的数据库中几个人员表
一个是市人武部干部
一个是基层人武干部
一个是科技人员
一个是退役军人
因为是数据是分次收集,按用户的工作计划分别收集。因此,各个表之间有重复数据,字段不一样(单位,姓名,生日,文化程度,政治面貌等字段相同)即科技人员有可能是基层干部,也同时可能是退役军人,或者是市人武干部,退役军人可能是科技人员,而且可能在基层做干部,也可能不做干部。从集合的角度来看,找不到能不重复又能构成人员全集的组合。
表与表完全是交叉重复,不是包含。
现在要查询数据库中不同文化程度/政治面貌...有多少人并列出数据。
我看只能按姓名+生日来去重。
但是,怎么写这个SQL语句呢?
还是把所有表的相同字段数据都取出来放入一个临时表,再对临时表去重?——对于大量的数据来说好象不太妙——我做的这个是网络版的,MYSQL在网络服务器上。
此外,用户要求能给出一定条件如专业,从各个单位随机抽指定的人数,所抽人数不能超过给定的比例,由于没有一个确切的人员全集,必须到这些表里去分别找,同样有重复问题,此操作必须在上一步的基础上做,如何随机抽取呢?
问题点数:100、回复次数:10Top
1 楼binbin(破坏分子)回复于 2002-04-01 17:17:39 得分 30
我感觉缺少一个Master表,一个全体人员表,将这些detail表联系起来,但用户的数据都是分散统计的,在录入时也要求分别输入,怎么办呢?Top
2 楼trainee(春泥)回复于 2002-04-01 17:55:06 得分 10
你最好统一成一张表,否则现在或以后会很麻烦,Top
3 楼zydmoon(想成为树的一棵草)回复于 2002-04-01 21:43:26 得分 10
我觉得你的这个数据库在建表时不太科学,冗余较多,而且也容易造成更新和插入删除异常,最好还是建立一个全体人员表。不知你认为如何?大家讨论讨论。Top
4 楼binbin(破坏分子)回复于 2002-04-12 23:48:13 得分 0
现在问题是没法得到全体人员表。
在一个地区内该系统内有多少人?不知道。
全体人员的资料是否全部得到了?不知道。
已得到的数据中包含了多少人的资料?不知道。
有多少人在几统计中重复计算了?不知道。
现在手中只有从几种渠道(这些渠道不可能同时开展工作)得到的资料,
已知有重复统计,
已知可能有人不在这些资料中,系统也不关心这些人(假设其不存在)。
如何解决?即使现在花大力气整理出来,将来下一次统计来的资料还是这样,计算机管理还有何意义?不如手工做算了。Top
5 楼kinlam()回复于 2002-04-13 09:21:40 得分 10
其实可不可以用一个表处理,当他们是一种类别那就更方便.Top
6 楼bombshell(水中鱼)回复于 2002-04-16 10:52:08 得分 10
你先伪造几个表,贴出来,那样分析问题更清楚。现在只看文字脑子都有点乱了。Top
7 楼Vitty(天狼)回复于 2002-04-16 11:26:11 得分 10
应该一开始就建立一个表,在提交时查询要提交的人是否存在于数据库中,如果存在,直接update相应的项,如果不存在,直接insert就可以了。Top
8 楼sandj(不了)回复于 2002-04-18 14:50:38 得分 20
看情况是够复杂的了
不过估计到你手里也就是这样子了,现在说什么也晚了
除非能够重头在来,……也不现实
那么,你现在把所有的饿记录放到一个完整的表中,
当然,有重复的记录,那么我们现在就是要把这些部分重复的记录给合并就好了
但是有一个问题,就是如果有某字段内容不是完全相同
(当然不是单位、名字、性别这些完全用来定位的字段了,你所列出的某些字段有变更的可能吗?比如学历、政治面貌等)
我们如何处理?直接覆盖还是列出人工处理?
举例子说吧:
合并成一个包含所有记录和字段的完整表我就不说了,想必你自己就能够完成
那么当我以某些条件确定出某些记录是一个人的信息后,我对于重复的字段该如何处理?
比如原始表1的住址是AAAA原始表2的住址是BBBB,而已经通过其他的条件得知这些记录确实是同一个人的,我要怎么处理?
是直接用其中一个覆盖掉吗?
那么就需要用最新的表的数据了
当然,也可以作为一个长字段直接相加也可以
还有一个方法就是将这些列出来你手工做,不过推测不可行
这样处理后的结果放到一个新表中应该就出现你所要的数据了
这样做可以吗?Top
9 楼Suddy(风)回复于 2002-04-18 21:09:34 得分 0
分析唯一性和多重性,了解重复机制
引用机制
听不懂?
唉Top
10 楼shuixin13(犬犬(心帆))回复于 2002-11-17 18:47:11 得分 0
发表时间: 2002-4-1 17:08:07
最后回复: 2002-4-18 21:09:34
如果楼主未回复,
帖分将无法返还帖主!
犬犬结帖!Top




