# hmall **Repository Path**: packagejava/hmall ## Basic Information - **Project Name**: hmall - **Description**: 微服务商城项目,将原始的单体架构的项目进行微服务改造 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2025-06-10 - **Last Updated**: 2025-06-10 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## 表设计的一些注意事项 1、禁止使用外键 从实际场景出发,如果添加了外键会是什么情况,数据库每次添加数据都需要去检查外键约束,看关联表是否 已经存在数据,硬性保持数据的一致性,这样会造成非常大的性能损耗,而且在高并发的场景下,可能会出现 **更新风暴**的风险。 **更新风暴**:在高并发环境下,多个客户端同时对数据库进行大量的更新操作,存在锁竞争问题甚至死锁, 从而导致数据库性能急剧下降或完全崩溃。 另外,当数据量非常大的时候,常见手段是分库分表,但外键通常难以跨越不同数据库来建立联系,数据的一致性 更难维护。因此,外键与级联并不适合分布式。高并发集群,但单机低并发业务可以考虑使用外键保证一致性和完整性。 ## 登录校验的流程 **流程图** ![image-20241202150904947](https://bucket01127.oss-cn-nanjing.aliyuncs.com/202412021509528.png) ### 微服务登录解决方案 ![image-20241202173815729](https://bucket01127.oss-cn-nanjing.aliyuncs.com/202412021738009.png)