将主键ID用括号包括 以字符串的方式进行存储 查询的技巧
先说业务场景,像打标签的功能,大部分系统都会有这样的功能,那么当系统中很多功能模块的实体都需要打标签,我们一般会采用在实体中存储标签表中的主键ID,一般业务场景中,一个实体是允许打上很多标签的,那么问题就来了,这个时候一个实体就要求关联标签表中的多个主键ID了,应对这个问题,有两种的方案可以选择.一是建立中间映射表,当实体对象上打一个标签,就在中间表上记录一条实体主键ID与标签ID的映射关系,方案二是在实体类表上将添加的多个ID以字符串的方式进行存储.
这样确实可以解决一对多的场景,但是当我们需要对实体进行分页查询,实体类上的属性不可避免的要作为分页的筛选条件了,当标签作为筛选条件,问题就来了,需要联表查询进行分页,想必大家都知道,在大数据量的应用场景中,不建议分页进行联表操作,因为联表会导致分页查询效率低下.而方案二刚好可以进行单表分页,接下来记录一下采用方案二的查询操作如何进行.
1.标签数据的插入
上述采用方案二,存在一个问题,就是在实体类表上将添加的多个ID以字符串的方式进行存储,那么多个ID之间如何分割呢?
方案一:想必大家脑海中第一反应就是采用逗号分割,如下所示
1,2,3,4,5
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧