要写一个数据库整合的工具 遇到了一个问题 2 张表 a 表的主键 id 是 1、2、3、4。算是一个类型表 b 表外键关联的 a 表的主键,结构根图片差不多, 然后 a 表的 id 更新了,成了 4、5、6、7 所以我 b 表关联的外键列该怎样更新呢
1
BadCat OP |
2
anthow 2017-11-03 11:54:18 +08:00
划重点。。。lz 头像
|
3
HarrisonZ 2017-11-03 11:54:48 +08:00
如果用了外键,数据库会自己处理。如果没有用外键,自己把 A 表变动的对应关系记录一下,然后在 B 表对应着变更不就可以了。数据量不大的话,一次 fetch 出 A 表所有的 id,id 为 key,变更后的 id 为 value,构建一个 hashtable,然后取出 B 表数据,直接用 hashtable 的 k/v 替换一下就好了
|
4
BadCat OP @HarrisonZ 没有外键,外包用的 ef。数据量非常大,a 表更新后的 id 都是没法掌控的,所以这点就很烦。记录变动的话要怎么记录?放在 dictionary 中,key 是原先的 a 表 id,value 是更新后 a 表的 id,然后判断 b 表外键 如果是 1 的话 就等于 这个 1 ( key )所对应的 value 吗。不知道是这样意思吗
|
7
hbn 2017-11-03 15:21:26 +08:00
重点是头像 楼主也是老司机
|
8
zhangjiha 2017-11-03 15:27:37 +08:00
我是因为楼主头像进来的
|
9
JKeita 2017-11-03 16:30:35 +08:00
表设计就有问题,正常主键就不能改变
|
11
leitwolf 2017-11-04 11:29:43 +08:00
头像确实是重点,次要的数据库问题表示不懂:)
|
12
kyuuseiryuu 2017-11-05 17:42:03 +08:00
外连接查表生成新表就好了呀。
|