标准化产品推荐机制的数据结构设计

文章目的

项目中对不同的用户有不一样的数据结构推荐,项目完成之后对这次设计过程进行总结和留档。

前言

标题比较绕口,私以为这一次的数据结构设计其实可以适用于更多的使用场景,所以,总结了此标题:

  1. 这是一个数据+结构的设计,涉及多组数据的组合
  2. 标准化产品:这类产品包括商业计划书、简历、毕业论文、某些商品,性质表现在:有固定格式,但是格式内的属性可以自由组合;比如简历中的属性可以认为是个人简介,工作经验,项目经验,学历,兴趣等,某些特定类别的行业也许只需要其中的几个属性而不需要全部的,那么这些属性可以自由组合。
  3. 推荐:根据不一样的限制条件推荐不一样的属性组合,比如某销售职业的招聘简历,会推荐:工作经验,销售业绩等属性的组合。

项目简介

任务是根据创业者项目所处的行业+阶段,推荐对应的商业计划书的结构,并对应不一样的模板页面。

假设行业有4个:行业1,行业2,行业3,行业4;

假设阶段有2个:阶段1,阶段2;

假设结构(项目简介、竞争对手、市场预测...)有5个:结构1,结构2,结构3,结构4,结构5

假设模板页面有3个:页面1,页面2,页面3

(页面再对应预设的点数)

设计

  1. 首先根据任务的描述,我们将数据分成了三个主要的部分,分别对应不一样的编号:
  • id:行业+阶段
  • Sid:商业计划书的结构
  • Pid:模板页面
  1. 4个行业+2个阶段那么就有8个组合
id 1 2 3 4 5 6 7 8
行业 行业1 行业1 行业2 行业2 行业3 行业3 行业4 行业4
阶段 阶段1 阶段2 阶段1 阶段2 阶段1 阶段2 阶段1 阶段2
  1. 结构对应有5个,则Sid = 1,2,3,4,5,根据调研结果设置有结果,会有一个对应关系:
id Sid
1 1,2,4
2 1,2,3,4,5
3 1,2,4
4 1,3,4,5
5 1,2,4
6 1,2,3,5
7 1,2,4
8 1,2,4,5

解释:也就是在阶段1的结构都是一样的:1,2,4
那么这时候开发只要知道用户选择的行业和阶段就能匹配到这份计划书中的结构:例如,用户选择了行业1,阶段2,则开发受到id=2,所以匹配结构1,2,3,4,5,这个时候需要5个页面,就是接下来的页面对应问题。

  1. 模板的页面由于存在一些可以供结构共用的页面,例如结构3,结构4都可以用页面2来表达,所以跟结构存在这样的对应关系:
Sid Pid
1 1
2 3
3 2
4 2
5 3

解释:所以每个结构会对应有一个页面,所以开发又可以从这个对应表中找到设计师设计好的页面直接呈现,那么设计师需要做的就是每个模板都制作3个页面。

  1. 页面预设的点数:每个页面对应有不一样的呈现结构,这个呈现结构可以是(假如):
  • 呈现结构1:1标题+1描述
  • 呈现结构2:4标题+4描述
  • 呈现结构3:1图+1描述

那么这个对应关系是产品与设计进行设定,页面1的设计对应呈现结构1;页面2的设计对应呈现结构2;页面3的结构对应呈现结构3;

所以最后的结果的是,设计将会设计出3张图,第一章用户要输入的内容是标题+描述;同理对应2,3张图;那么由于这个对应关系,开发就能知道在对应的页面上用户需要输入的内容是什么,则可以根据呈现结构来设置输入页面。

那么到这里基本上就完成了数据结构的设计:

对应的关系 id-Sid—Pid-呈现结构-点数

当一个用户选择了行业和阶段之后选择一个自己喜欢的模板,然后我们将会呈现设定的推荐结构,与页面还有输入框,由于行业和阶段没有改变,而每个模板都会包含有设计的页面,只要找到模板对应的页面id呈现出来即可,所以就实现了在结构下更换模板的功能。

当然在项目中呈现结构上如果有4点的,还会有切换低点数的功能,即可以在当前页面快速选择需要呈现多少点数,并且每点对应的数据都会储存,切换时数据不会丢失。所以设计师应该要设计4张图在呈现结构2的情况下。

思考

这一套方式同样适用于简历的“定制化”功能,我需要设置工作经验+求职方向,对应不同的项目结构,项目结构又对应不同的呈现结构,那么依然还是id-Projectid—Previewid也可以继续进行扩展,结构一致,只是名称不一样罢了。

对于某些商品来说:种类+风格组成一组id,我会有推荐的样式组合给出,样式又对应不一样的呈现方式:结构还是id-styleid-previewid,具体来说,我要定制一个手提箱,种类就是手提箱+复古风格,是为id=1;id = 1的情况下对应styleid1:颜色,styleid2:外皮,styleid3:铆钉。那假若手提箱+现代风,是为id = 2,则可能对应styleid1:把手,styleid2:外皮,而可能没有style3.接着对应颜色1,2;则styleid1与styleid2对应都是颜色1,所有这歌结构还是相似,依然可以设计出一套结构出来。那么开发只需要知道id即可。

文章主要供自己回忆和思考用。

你可能感兴趣的:(标准化产品推荐机制的数据结构设计)