Foxtable(狐表)用户栏目专家坐堂 → [求助]关于导入项目数据的问题


  共有2811人关注过本帖树形打印复制链接

主题:[求助]关于导入项目数据的问题

帅哥,在线噢!
chnfo
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2191 积分:18013 威望:0 精华:0 注册:2011/11/26 20:21:00
[求助]关于导入项目数据的问题  发帖心情 Post By:2014/12/8 21:30:00 [只看该作者]

现在用ACCESS做数据库,而且主键用的是自动增加的数字列(假定为ID)
因为数据库有多个表,而且很多表都有关联。

现在的问题是,因为两个项目分离两地,而且都是局域网相对独立应用(但数据库结构是一样的),所以都有自已的数据。
现在想把这两个项目的数据合并起来,出现了一个问题 ,因为如果直接原样复制进去,肯定是不行的,因为主键不会重复,而关联的就有问题了。
比如AB两个表,B通过AID与A关联。
现在先合并A表,ID会自动增长,但B表中的AID的值还是原来的?

如何是好呢?

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/12/8 21:32:00 [只看该作者]

 那关联字段,就不要弄成id。另外弄一个列作为关联字段。

 回到顶部
帅哥,在线噢!
chnfo
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2191 积分:18013 威望:0 精华:0 注册:2011/11/26 20:21:00
  发帖心情 Post By:2014/12/9 8:50:00 [只看该作者]

问题是用另外一列,那另外一列就起到ID的作用,就存在它如何编号的问题,如何在网络条件下保证编号唯一的问题,如果用自定义编号则访问速度慢的问题。实际测试,用自定义编号,复制200行的表,生成编号至少70秒,可称龟速。如果导入的表数据有上万行,岂不得睡个觉?

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/12/9 9:02:00 [只看该作者]

 你可以编写代码,此列的数据等 项目N+ID 组合生成。

 

 这样就能区别不同的项目了


 回到顶部
帅哥,在线噢!
chnfo
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2191 积分:18013 威望:0 精华:0 注册:2011/11/26 20:21:00
  发帖心情 Post By:2014/12/9 9:22:00 [只看该作者]

这样不行吧。 项目编号是唯一的。假设命名为P1,P2 分别有AB两表,都以自增为主键。 A表字段ID,sysid(项目编号+ID) B表字段ID,sysid(项目编号+ID) ,AID(关联A表的sysid) 甜兄是这意思?

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/12/9 9:39:00 [只看该作者]

 是的,固定的 项目编号+ID


 回到顶部
帅哥,在线噢!
chnfo
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2191 积分:18013 威望:0 精华:0 注册:2011/11/26 20:21:00
  发帖心情 Post By:2014/12/9 10:32:00 [只看该作者]

那合并其它项目的sysid就不等于项目编号+id了。另外,如果用户修改项目编号,那才是痛苦之至啊

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/12/9 10:35:00 [只看该作者]

 每个地方固定一个项目编号啊,比如 项目1 啊

 回到顶部
帅哥,在线噢!
chnfo
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2191 积分:18013 威望:0 精华:0 注册:2011/11/26 20:21:00
  发帖心情 Post By:2014/12/9 10:52:00 [只看该作者]

那就不用那么麻烦吧,直接用一个ID=identify,再加上项目编号来识别就好了嘛

 回到顶部
帅哥,在线噢!
chnfo
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2191 积分:18013 威望:0 精华:0 注册:2011/11/26 20:21:00
  发帖心情 Post By:2014/12/9 11:37:00 [只看该作者]

这样应当可以。用identify作主键,设一列名为id,在datarowadding事件中让id=identify,导入数据肘写原来的id而不让它等于identify,再结合项目id一起来判断是哪个项目的数据,这应当⺁可行

 回到顶部