电商项目学习摸索笔记

今天开始学习一个不复杂电商商城项目,不用分布式。暂定使用springboot+微信小程序的方式来构建一个比较简单的商城小程序。其中,所有数据获取的接口都放在idea中,小程序端通过wx.request(http请求)进行调用,小程序端仅做数据展示以及简单的业务处理(比如购物车,订单状态等等)。

学习方法(暂定):前端代码使用固定的,编写后端代码让其调用接口进行展示

希望获得的学习成果:熟悉掌握电商项目的开发流程,熟悉电商项目的结构设计(表结构,业务流程/逻辑,模块分类等)

-------------------------------------------------分割线24.8.11---------------------------------------------------

第一天:熟悉代码,熟悉模块划分,了解业务需求

下一阶段目标:理解数据库表结构,学习项目设计过程

-------------------------------------------------分割线24.8.14-------------------------------------------------

前两天上班比较忙,所以没什么空来续追这个项目

今天学习商品表(实体),商品标签表(实体),商品标签引用表(抽象)。表结构设计。

上面三张表的关系很容易理解,一个商品可能会有多个标签,一个标签会应用到一批商品上,这两个都是偏具象的(存在具象属性)。因此考虑将其作为实体表(即对应一个dto类),将两者之间多对多的关系抽出来作为一张引用表来维护这种关系,一张引用表包含多个商品多个标签(如果有想看表结构的打评论或者私信,现在考虑篇幅我就不发了)。

今日收获:电商业务的划分,数据表结构的设计

明天目标:继续学习数据表结果(运费,价格库存,sku--规格,)

-------------------------------------------------分割线24.8.16-------------------------------------------------

今天梳理了这个项目需要用到的依赖,以及多模块之间的关系,梳理内容以及遇到的问题内容较多,放在了这里电商项目学习摸索笔记2-CSDN博客

     

业务划分:

商品类:
ProdController:商品接口
ProdTagController:商品分组标签接口
SkuController:sku规格接口

展示/与用户交互类:

CategoryController:分类接口
IndexImgController:首页轮播图接口
NoticeController:公告管理接口
ProdCommController:评论接口
SearchController:搜索接口
ShopCartController:购物车接口
SmsController:发送验证码接口

用户类:

UserController:用户接口
UserRegisterController:用户注册相关接口
UserCollectionController:用户收藏接口

地址类:

AreaController:省市区接口
AddrController:地址接口
DeliveryController:查看物流接口

订单支付类:

OrderController:订单接口
MyOrderController:我的订单接口
PayController:支付接口
PayNoticeController:支付回调接口(拓展)

-------------------------------------------------分割线24.8.20---------------------------------------------------

今天继续更新...

今日完成业务(---ProdController:商品接口---)

收获:

在数据库查询中,单表查询大多可以用mybatisplus解决(很常用不介绍),而链表查询,目前用到最多的就是左连接.

左连接:是以左表为基础,根据ON后给出的两表的条件将两表连接起来。结果会将左表所有的查询信息列出,而右表只列出ON后条件与左表满足的部分。

-- left join
select * from A left join B on  A.id = B.id 

-- left outer join
select * from A left outer join B on  A.id = B.id 
 

项目业务例子:

<select id="pageByTagId" resultType="com.dora.shop.bean.app.dto.ProductDto">
    SELECT
    <include refid="prodAndShopNameWithNoContent_SQL"/> //这里是嵌入了一段sql
    FROM tz_prod p       
    LEFT JOIN tz_prod_tag_reference ptr
    ON ptr.`prod_id` = p.`prod_id`
    LEFT JOIN tz_prod_tag pt
    ON pt.`id` = ptr.`tag_id`
    LEFT JOIN tz_shop_detail sd
    ON p.shop_id = sd.shop_id
    WHERE pt.`id` = #{tagId}
    AND p.status = 1      //逻辑删除标识
    ORDER BY p.`update_time` DESC
</select>

查询取p.prod_id, p.pic, p.prod_name, p.price, p.brief, sd.`shop_name`列

将商品表作为基础(tz_prod 全都要),商品标签引用表(tz_prod_tag_reference )通过商品id(prod_id)连接(只要prod_id与商品表相同)。商品标签表(tz_prod_tag )通过标签id(pt.`id`)连接(pt.`id`需要与[商品表,标签引用表]连接后的结果中的标签id相同(ptr.`tag_id`)).

即:根据指定标签(#{tagId})找到所有引用了该标签的商品的商品详细信息。并根据更新时间倒序排序。

内连接:内连接查询的是两张表的并集,也就是A表和B表都必须有数据才能查询出来

写法3种:

-- join
select * from A  join B on A.id = B.id 

-- inner join
select * from A inner join B on A.id = B.id 

-- 逗号的连表方式就是内连接
select * from A , B where A.id = B.id 
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值