究竟如何对导入数据进行合法性判别???(200分)

  • 主题发起人 主题发起人 honestman
  • 开始时间 开始时间
H

honestman

Unregistered / Unconfirmed
GUEST, unregistred user!
我弄一个数据库的时候,需要对从EXCEL引入的数据进行合法性判别,
例如:性别只能是男或者女。
而这些合法的值我是放在另外一个数据库里面的,因为有些字段的合法
的值是可变的。例如:在“人员职务”字段可以增加一个叫“技术总
监”的值。
那么,如何对导入数据库相应字段的值进行合法性判别比较高效呢?
 
字段值的比较就是查表. 我觉得没什么更好的办法. 其实执行时间主要是数据读入,合法性
判别的时间不算多.
要么仿照edit的有效判别.其实它的速度不一定快.
 
如果每条记录都查若干次表,我要导入几万条记录,要多长时间才可以完成啊???
 
放到Server端进行你需要的操作吧,使用存储过程。
不要让客户端做它不擅长做的事情。
 
同意yanghaijun
补充一点:
最好先把数据导入一个临时表当中,这样:
如果是文件型的数据库:因为数据都在一个库中,操作比较灵活,可以先对临时表进行合法性
检查,再导入目的表中。
如果是C/S型的数据库:可在服务器端建一个存储过程,使用游标,逐一检查后导入。
一次导入几万条记录不一定每条记录都要查若干次表,可以建一个数组来保存一个字段的所有
可能的有效值(当然,也不能太多,如男女就很合适,可以用GroupBy取得)。这样效率可以提高。
还有这种情况出现得应该不多吧,如果不多,处理个十几分钟对客户应该不会有什么问题,如果
出现得多,那么你应该换个思路来作这个项目了。
 
我现在正在弄一个比较大的人事管理系统。其中有:性别、婚姻状况、政治面目文化程
度等等。我想把这些东西都弄到数据库里面,由数据库判断这些字段的数据的合法性。
先对文件型数据库进行考虑,究竟具体应该怎么实现啊?建立临时表好象用处不大啊?
 
建临时表是因为可以为临时表建索引,对于几万条记录的操作,有索引和没有索引处理时间是
几个数量级的差异。你可以在Excel中作Group By试试。
还有由数据库判断这些字段的数据合法性是什么意思???参照完整性?
对于文件型数据库,你就一条一条的读出,效验,再加入吧。
看你的要求好象只用作一次吧,呵呵,辛苦我一个,幸福n(n>1)个人。
 
我还是赞成yanghaijun和他楼下兄弟的方案,即使是文本数据,也可以先一条条地写入临时
表后再处理,就像杜宝所说的建临时表是因为可以为临时表建索引,对于几万条记录的操作,有索引和没有索引处理时间是
几个数量级的差异。
 
多人接受答案了。
 
后退
顶部