首页 新闻 会员 周边

批量删除时,关联记录怎么处理?

0
悬赏园豆:10 [已解决问题] 解决于 2018-10-19 14:13

比如要删除1000条A表的记录,但是A表上的记录跟B、C表都有关联,实际意义上讲,如果A被删除了,B和C上的关联记录也就失去存在意义(意思就是没用了),那么这时候,应该怎么处理这些关联记录呢???
1、一起删掉;
2、放着不管,查询时,通过where判断A记录是否存在,来过滤;
3、各位大神有没有其它办法?

lrj1596的主页 lrj1596 | 初学一级 | 园豆:22
提问于:2018-10-16 11:40
< >
分享
最佳答案
2

那要看是否以后还需要用到关联的数据,如果用不到删除A表数据的同时肯定要把其关联数据都要删除的,用的到的话,给关联表加个状态字段,删除的同时改变一下状态好区分。正常来说,删除主要数据,项目的关联数据肯定要删除的。

收获园豆:6
徒然喜欢你 | 小虾三级 |园豆:1741 | 2018-10-17 10:07
其他回答(5)
0

你可以搜一下关于关联记录的问题,应该有一些这方面的问题。

执古 | 园豆:334 (菜鸟二级) | 2018-10-16 12:20
0

不管是什么数据,一般来说只要是商业化的项目都数据都应该永久保存,没有没意义的数据,如果一定要删除,建议用个字段来判断该数据是否是有效的

懊恼的程序员 | 园豆:104 (初学一级) | 2018-10-16 18:10

我知道,我就是说逻辑删除了A表的记录,要不要把B和C表上的关联记录一起逻辑删除?or放着不管?

支持(0) 反对(0) lrj1596 | 园豆:22 (初学一级) | 2018-10-17 09:50
0

在A表中添加一个字段,当删除A中数据是,改变这个字段的状态,并不是真正的删除数据。逻辑删除并不是物理删除

你小子嚣张呀 | 园豆:630 (小虾三级) | 2018-10-16 18:17

我知道,我就是说逻辑删除了A表的记录,要不要把B和C表上的关联记录一起逻辑删除?or放着不管?

支持(0) 反对(0) lrj1596 | 园豆:22 (初学一级) | 2018-10-17 09:50
1

你应该自己斟酌关联的数据是否有意义,如果没意义就删除。

收获园豆:3
fangq | 园豆:417 (菜鸟二级) | 2018-10-17 10:09
1

1.建表或者修改表结构时的时候指明外键和级联删除,在直接删除主表的时候外键表中的记录也会一并删除

2.逻辑删除,看你的表结构,B,C属于A的附加信息,因此在A表中加字段做逻辑删除标识.因为你自己也说明了单独B,C存在没意义,所以B,C表保留数据不做任何标识也是可以的。

收获园豆:1
Daniel Cai | 园豆:10424 (专家六级) | 2018-10-17 22:52
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册