工作流
1.检查信息结构图的合法性
当前阶段,在wide中打开项目的信息结构图页面,将会看到产品经理整理的流程图(按照正常流程,此流程图已经被一名技术经理确认或者所有的分类来自内置模块和scheme词汇表.如果产品经理没有按流程执行,请对项目进行拒绝立项)
2.务必重视如果项目中涉及的功能已经被模块支持了,请使用 内置模块。
查看要分配的页面并对应到信息结构图中的相关表
i.当检查页面名词时,发现之前有此类名词的表。这时候看是什么对应关系的;
ii.如果是一对一,那么在 当前表中 加包含该名词的 上一表的id即可;
iii.如果是一对多,那么就在 包含该名词的 上一表中加上 当前表的id,并设置好对应关系;
iv.如果是多对多,那么就需要建一个 关系表来表现关系;关系表中首先设置好,有关系的两个表的id,然后设置一些方便查询的缓冲字段;
v.缓冲表是用来方便查询的表,他的字段都来自其他表;(当页面需要的查询,以及呈现的数据,来自不同的基础表时。则需要新建缓冲表。此时缓冲表中的字段,只能来自于原有的基础表中的字段(可能来自多个基础表)。类似于:参与者和参与人数这样可计算的信息,这种类型信息不属于缓冲范畴。)
注意事项:
1. 整理页面时,和领域专家(产品/业务方)一起画框架图,这样业务领域就被隔离,只考虑页面的逻辑;在注释里添加辅助代号。
2. 如果涉及第三方API,将第三方内容框起来,不要关注业务的真实逻辑(物理含义);
3. 如果在整理信息结构图的过程中需要被搜索,那么相关的中文字段在属性设置中设置为分词,且用查询表达式的方式。
4. 如果在页面中涉及富文本元素,那么注意将该字段属性设置为禁止搜索。
5. 基础表应该是个名词,动词应该作为字段存储在表中。表名都是以名词为中心的;例如:申请加入团队,此时申请人应该已经在团队表里创建记录了,而申请这个动词应作为团队表的一个字段:“申请状态”来存储;
6. 在完成信息结构图编辑时,点击“保存”按钮之后,还要点击“导出数据库配置”才能正确的保存信息结构图;而且在提交SVN时注意要提交两个文件infoset.json(/workspace/infoset.json)和mapping.json(/tpl/workspace/module/ignite/_wwapp/mapping.json)两个文件。
7. 如果需要判断查询的文件是否存在时,即:如果上传文件,查询时就返回一个文件路径,如果不上传文件,查询时就返回一个空字符串。在信息结构图的文件字段属性中,默认路径设置为:nocheck 即可。
8. 在使用模块时,需要向模块的信息结构图增加字段。有以下注意事项:
以_noidx为后缀的字段,将不会被索引。
以_noana为后缀的字段,不会被分析。
以_cn为后缀的字段,采用中文分词.
以_pinyin为后缀的字段,采用pinyin分词。
10. 数字类型,优先使用双精度,然后单精度,避免使用整型——哪怕需求明显看起来是整型。
11. 枚举类型,例如 boolean 多状态,使用不分词的字符串。
12.如果涉及到数字+单位的情况,首先确定一个标准单位,例如货币类,可以选择元、万元等,然后信息结构图中只设置一个字段用于保存数字,并在注释中说明默认单位。
13.信息结构图的推荐风格(如果使用标准数据库,也就是ES): 表的列很多,但是表很少。例如一个逻辑,房子信息及物品信息,房子包含了物品,我们应该做扁平化,只设定物品表,其字段包含了房子的字段和物品的字段,然后增加一个字段标识类型(房子/物品/XXX)。所有有隶属关系的,都应该扁平化——就是我们以前说的,树状层级关系,只包含叶子节点,中间的节点不包含——同样规则适用于schema里的分类。(注意一个特点:不怕字段多,怕表多还需要使用缓冲,更麻烦。)