假如我有两个表:TB_BASECODE,TB_INFO [ORACLE]
表TB_BASECODE里定义一些基础代码BASECODE,表TB_INFO中的列BASECODES引用TB_BASECODE的BASECODE,并且BASECODE支持多选,多选时,在BASECODES内以逗号分隔
如下图:
表TB_BASECODE:
ID BASECODE
1 CODE1
2 CODE2
3 CODE3
4 CODE4表TB_INFO
ID BASECODES REMARK
1 CODE1
2 CODE2,CODE3
3 CODE1,CODE2,CODE4
4 CODE4
5 CODE2表TB_INFO的数量级别在百万以上
现在我要删除TB_BASECODE的一条记录,需要判断该记录是否被用到,如果去查询TB_INFO表的话,需要用到LIKE语句,这导致每次都全表扫描,性能非常慢,TB_BASECODE不只被这一个表引用,因为BASECODES是多选的,所以没法建外键约束,不知道有否好的方法?
表TB_BASECODE里定义一些基础代码BASECODE,表TB_INFO中的列BASECODES引用TB_BASECODE的BASECODE,并且BASECODE支持多选,多选时,在BASECODES内以逗号分隔
如下图:
表TB_BASECODE:
ID BASECODE
1 CODE1
2 CODE2
3 CODE3
4 CODE4表TB_INFO
ID BASECODES REMARK
1 CODE1
2 CODE2,CODE3
3 CODE1,CODE2,CODE4
4 CODE4
5 CODE2表TB_INFO的数量级别在百万以上
现在我要删除TB_BASECODE的一条记录,需要判断该记录是否被用到,如果去查询TB_INFO表的话,需要用到LIKE语句,这导致每次都全表扫描,性能非常慢,TB_BASECODE不只被这一个表引用,因为BASECODES是多选的,所以没法建外键约束,不知道有否好的方法?
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货