思路:需求分析–表设计–后台基本代码生成(根据数据库表进行生成基本的CRUD)–Swagger或postman测试–前台功能展示
所有的设计都是结合业务进行设计的
商品的属性
商品的属性包括:sku属性和显示属性
显示属性:页面以key和value的方式进行展示
需求分析:
DB中有一张表,存有显示属性和sku属性的值
productType商品类型
type类型:区分sku属性或显示属性
目的:对商品的显示属性进行CRUD(前台的值和后台的属性对应上,就会自动回显)
思路:前台添加多个显示属性,后台通过属性对象接受,然后使用afastJSON转为json字符串,然后保存到ext扩展表,注意此时是更新,不是插入。因为在保商品数据信息的时候,已经保存了显示属性的图文详情。
sku属性:影响商品价格和库存的属性,也叫销售属性
① 需求分析
用户在详情页面可以选择sku属性,切换不同的sku组合,价格和库存会进行动态的改变。
首选后台添加sku属性和属性值------》前台才能进行搜索-------》商品模块添加sku按钮------》弹出dialog:动态获取sku的属性-------》sku的属性值,应该为手动输入-------》保存更新到数据库(包括删除、查询)都是在删除商品的时候进行删除和查询)形成sku数据时保存在sku表内,一个商品有多个sku。查询商品的时候,对应的将sku进行查询、删除。
② sku表设计
与sku相关联的数据
商品表、扩展表(skuProperties)、sku表
添加数据,需要动态的获取sku属性,---》从t_pecification表中进行获取,数据都是保存到sku表内,sku值应该保存在扩展表内 ,有三条数据,就对应三个属性 -----》简言之,扩展表内的sku属性字段内保存的就是属性表(属性表多了一个skuValue的字段)----》选择对应的sku
③前台页面设计(后台需要一定的想象能力)
dialog
商品的上架和下架
- ES知识储备
ElastisSearch 基于Lucene的全文检索框架。(另外还有solr)\
1. 为什么有了Lucene还要使用ElasticSearch???
lucene:需要在本地的磁盘创建索引
IndexWriter : 写索引——
① 写入本地磁盘——不适合实现集群,和缓存思维一致,磁盘文件的资源是不共享的,无法实现索引的同步,官方未提供对应的API
② 索引会占用磁盘空间,占用服务器使用的资源
IndexSearch:搜索索引
ES:
①官方支持集群
②基于lu