标签:.com ado 批量 com 情况 行存储 class 参数 实现
内容管理系统,如文章管理、产品管理的时候,经常会出现这样的场景:某篇文章为系列文章,或者为系列产品,然后需要这个系列的文章/产品在展示的时候,展示出同系列的文章或者产品。同时,在后台管理的时候,需要在有关联关系后,能对关联关系进行管理(增删改查)。
这样的需求,因为考虑到信息维护的唯一性,原计划是新增数据表,用中间数据表对关键结构进行存储管理,这样更规范,也不用对原来的文章数据进行破坏,不增加大数据量的文章表字段。不过后来考虑到后期在管理的时候,工程量开发更大,就抛弃了这个方案。
还是用最简单的方案,在文章数据表增加关联文章的字段,字段以数组形式存储关联文章的ID,给予的排序序号;
新增关联的时候,对每个关联的文章插入字段;
修改的时候,也对每个关联的文章插入字段;
删除的时候,对前面已有的文章,也清空字段;
备注:此处,仅考虑一对多关联,或者说只考虑并集的情况,不考虑交集情况,即,A关联B、C,关联后,ABC的关联性一致,不存在B关联除AC之外的其他项,不再关联D,如果有更多的关联需求,则需要使用TAG标签完成,此处不考虑;
为减少工作量,以函数封装:
输入参数
修改关联数组 数组形式(参数1 序号 参数2 ID) 必填
原始关联数组 数组形式 选填 默认为空
数据表名称 文本形式 string 选填 默认为article
输出参数
输出 false/true
函数处理思路
在新增文章或者说新增关联文章的时候,即原来的文章或者新增的文章的关联字段为空,则接下来的操作都为批量update操作
如果原始关联数组不为空,则需要对原始关联数组进行循环,然后对对应的文章字段进行删除,然后再开始修改操作
开始修改操作,对修改关联数组进行循环,然后对对应的文章字段进行修改操作;
修改完毕,返回true
最终实现的功能图如下,在实际开发过程中,还是遇到了一些问题,例如数组排序、在编辑页面实现ajax获取文章列表,ajax搜索文章、重复数据剔除等等。
弹出相关文章插入窗口,并搜索相关文章
插入相关文章\关联文章后的显示,前面打钩去掉,则不关联
标签:.com ado 批量 com 情况 行存储 class 参数 实现
原文地址:http://www.cnblogs.com/ledaokj/p/6711247.html