一 、背景
前几日投递简历,要按照要求才有面试机会,趁着不忙,也做了个简单demo
1.1 前端演示
二、项目要求
三、项目设计
3.1 数据库设计
3.1.1 需求分析
3.1.1.1 表格页面
3.1.1.2 详情页面
3.1.1.3 城市列表页面
3.1.1.4 分析
主要分析的难点是一个地区包含多个城市,而一个城市又包含多个地址
属于连续的两个一对多
关系
根据以上关系,建立了两张表(理论上建立三张)
3.1.1.4.1 主表area地区表
存储了编号、区域名称、区域下城市的id、创建时间
对应关系如下:
3.1.1.4.2 从表area_detail
存储了区域下的城市、城市下的地址,这儿稍微偷了点懒,把城市下的地址按照数组的形式存入一列,少建立的一张表
3.1.1.4.3 城市表city
这个结构就很简单了,就不细说了
3.1.1.4 注意
连接两张表的是position_id,需要全局唯一,且在执行sql前就指定数值,
这里我使用了redis生成为唯一id:
一共64位(Long),
1位符号位,固然为0
31位存储时间戳,如果一天一个数值,理论上可以存储68年的数据
32位存储自增编号,一天最多可以生成2^32个编号
代码参考:https://juejin.cn/post/7241922694274433080
3.2 Java部分
3.2.1 实体类生成
实体类直接用MybatisPlusX
自动生成就好了
其他类似的模板可以参考:https://juejin.cn/post/7248183510233989180
主要查询就两张表,比较简单,直接说易错点和难点了
3.2.2 项目易错点
主键无法自增
参考链接:https://juejin.cn/post/7255149657768280119
加载分页插件
参考链接:https://juejin.cn/post/7255216411566866487
修改redis序列化
参考链接:https://juejin.cn/post/7255968185681428517
LocalDataTime 在sql中不能和空比较
参考链接:https://juejin.cn/post/7255590272557629499
数据库编码错误
参考链接:https://juejin.cn/post/7255149657768083511
开启sql日志
参考链接:https://juejin.cn/post/7255146300038676537
前端接收excel
参考地址: https://juejin.cn/post/7256964915134185528
缓存方法失败
参考链接:https://juejin.cn/post/7255955134131470396
minio 端口用错
参考地址: https://juejin.cn/post/7257048132064247864
导入 websocket 后测试类失效
参考地址:https://juejin.cn/post