News新闻

业界新闻动态、技术前沿
Who are we?

您的位置:首页      乐道系统FAQ      相关文章、关联文章、产品功能开发方案

相关文章、关联文章、产品功能开发方案

发布日期:2017-04-11 21:43:00 505

  内容管理系统,如文章管理、产品管理的时候,经常会出现这样的场景:某篇文章为系列文章,或者为系列产品,然后需要这个系列的文章/产品在展示的时候,展示出同系列的文章或者产品。同时,在后台管理的时候,需要在有关联关系后,能对关联关系进行管理(增删改查)。

  这样的需求,因为考虑到信息维护的唯一性,原计划是新增数据表,用中间数据表对关键结构进行存储管理,这样更规范,也不用对原来的文章数据进行破坏,不增加大数据量的文章表字段。不过后来考虑到后期在管理的时候,工程量开发更大,就抛弃了这个方案。

  还是用最简单的方案,在文章数据表增加关联文章的字段,字段以数组形式存储关联文章的ID,给予的排序序号;

  新增关联的时候,对每个关联的文章插入字段;

  修改的时候,也对每个关联的文章插入字段;

  删除的时候,对前面已有的文章,也清空字段;

  备注:此处,仅考虑一对多关联,或者说只考虑并集的情况,不考虑交集情况,即,A关联B、C,关联后,ABC的关联性一致,不存在B关联除AC之外的其他项,不再关联D,如果有更多的关联需求,则需要使用TAG标签完成,此处不考虑;


  为减少工作量,以函数封装:

输入参数

修改关联数组    数组形式(参数1  序号   参数2   ID)    必填

原始关联数组    数组形式                                                选填    默认为空

数据表名称       文本形式  string                                      选填    默认为article

输出参数

输出    false/true


函数处理思路

  在新增文章或者说新增关联文章的时候,即原来的文章或者新增的文章的关联字段为空,则接下来的操作都为批量update操作

如果原始关联数组不为空,则需要对原始关联数组进行循环,然后对对应的文章字段进行删除,然后再开始修改操作

  开始修改操作,对修改关联数组进行循环,然后对对应的文章字段进行修改操作;

修改完毕,返回true


  最终实现的功能图如下,在实际开发过程中,还是遇到了一些问题,例如数组排序、在编辑页面实现ajax获取文章列表,ajax搜索文章、重复数据剔除等等。

弹出相关文章插入窗口,并搜索相关文章

插入相关文章\关联文章后的显示,前面打钩去掉,则不关联