Compare commits
No commits in common. "134cc6a0758d00546e4f3275ce8fa3bee1775b32" and "2eb4a28b89eaf6a3b7ea78246ddddec616922434" have entirely different histories.
134cc6a075
...
2eb4a28b89
@ -1298,7 +1298,7 @@ CREATE TABLE t_user_role (
|
||||
|
||||
-- ✅ 推荐:不使用外键约束
|
||||
CREATE TABLE t_user_role (
|
||||
id BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '主键 ID(数据库自增)',
|
||||
id BIGINT PRIMARY KEY COMMENT '主键 ID(雪花算法)',
|
||||
user_id BIGINT NOT NULL COMMENT '用户 ID',
|
||||
role_id BIGINT NOT NULL COMMENT '角色 ID',
|
||||
create_time DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
@ -1452,14 +1452,14 @@ t_{实体 A}_{实体 B}
|
||||
public class ClassTeacher {
|
||||
|
||||
@Schema(description = "ID", accessMode = Schema.AccessMode.READ_ONLY)
|
||||
@TableId(type = IdType.AUTO)
|
||||
private Long id;
|
||||
@TableId(type = IdType.ASSIGN_ID)
|
||||
private String id;
|
||||
|
||||
@Schema(description = "班级 ID", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
private Long classId;
|
||||
private String classId;
|
||||
|
||||
@Schema(description = "教师 ID", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
private Long teacherId;
|
||||
private String teacherId;
|
||||
|
||||
// === 业务属性字段 ===
|
||||
@Schema(description = "角色", example = "teacher", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@ -1490,9 +1490,16 @@ public class ParentStudentMapping { } // 冗余
|
||||
#### 5. 主键策略
|
||||
|
||||
```java
|
||||
// 推荐:使用 AUTO_INCREMENT(数据库自增)- 适用于所有表
|
||||
@TableId(type = IdType.AUTO)
|
||||
private Long id;
|
||||
// 推荐:使用 ASSIGN_ID(雪花算法)- 适用于有业务属性的中间表
|
||||
@TableId(type = IdType.ASSIGN_ID)
|
||||
private String id;
|
||||
|
||||
// 或:使用复合主键(适用于纯关联表,无业务属性)
|
||||
@TableId
|
||||
private String parentId;
|
||||
|
||||
@TableId
|
||||
private String studentId;
|
||||
```
|
||||
|
||||
#### 6. 唯一索引约束
|
||||
@ -1541,9 +1548,9 @@ CREATE UNIQUE INDEX uk_class_teacher ON t_class_teacher(class_id, teacher_id);
|
||||
**表结构:**
|
||||
```sql
|
||||
CREATE TABLE t_parent_student (
|
||||
id BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '主键 ID(数据库自增)',
|
||||
parent_id BIGINT NOT NULL COMMENT '家长 ID',
|
||||
student_id BIGINT NOT NULL COMMENT '学生 ID',
|
||||
id VARCHAR(32) PRIMARY KEY COMMENT '主键 ID(雪花算法)',
|
||||
parent_id VARCHAR(32) NOT NULL COMMENT '家长 ID',
|
||||
student_id VARCHAR(32) NOT NULL COMMENT '学生 ID',
|
||||
relationship VARCHAR(20) COMMENT '关系:father/mother/other',
|
||||
is_primary TINYINT DEFAULT 1 COMMENT '是否主要联系人',
|
||||
created_by VARCHAR(50) COMMENT '创建人',
|
||||
@ -1578,14 +1585,14 @@ import java.time.LocalDateTime;
|
||||
public class ParentStudent {
|
||||
|
||||
@Schema(description = "ID", accessMode = Schema.AccessMode.READ_ONLY)
|
||||
@TableId(type = IdType.AUTO)
|
||||
private Long id;
|
||||
@TableId(type = IdType.ASSIGN_ID)
|
||||
private String id;
|
||||
|
||||
@Schema(description = "家长 ID", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
private Long parentId;
|
||||
private String parentId;
|
||||
|
||||
@Schema(description = "学生 ID", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
private Long studentId;
|
||||
private String studentId;
|
||||
|
||||
@Schema(description = "关系", example = "mother", allowableValues = {"father", "mother", "other"})
|
||||
private String relationship;
|
||||
@ -1626,7 +1633,7 @@ import java.time.LocalDateTime;
|
||||
/**
|
||||
* 基础实体类
|
||||
*
|
||||
* <p>包含所有实体共有的字段:ID(数据库自增)、审计字段、逻辑删除。</p>
|
||||
* <p>包含所有实体共有的字段:ID(雪花算法)、审计字段、逻辑删除。</p>
|
||||
* <p>所有实体类应继承此基类。</p>
|
||||
*
|
||||
* @author developer
|
||||
@ -1640,10 +1647,10 @@ public abstract class BaseEntity implements Serializable {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 主键 ID(数据库自增)
|
||||
* 主键 ID(雪花算法生成)
|
||||
*/
|
||||
@Schema(description = "主键 ID")
|
||||
@TableId(type = IdType.AUTO)
|
||||
@TableId(type = IdType.ASSIGN_ID)
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
@ -1858,7 +1865,7 @@ public class MybatisPlusConfig implements MetaObjectHandler {
|
||||
```sql
|
||||
-- 角色表
|
||||
CREATE TABLE t_auth_role (
|
||||
id BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '主键 ID(数据库自增)',
|
||||
id BIGINT PRIMARY KEY COMMENT '主键 ID(雪花算法)',
|
||||
role_code VARCHAR(50) NOT NULL COMMENT '角色编码',
|
||||
role_name VARCHAR(100) NOT NULL COMMENT '角色名称',
|
||||
sort_order INT DEFAULT 0 COMMENT '排序',
|
||||
@ -1873,7 +1880,7 @@ CREATE TABLE t_auth_role (
|
||||
|
||||
-- 菜单权限表
|
||||
CREATE TABLE t_auth_menu (
|
||||
id BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '主键 ID(数据库自增)',
|
||||
id BIGINT PRIMARY KEY COMMENT '主键 ID(雪花算法)',
|
||||
parent_id BIGINT DEFAULT 0 COMMENT '父菜单 ID',
|
||||
menu_type VARCHAR(20) NOT NULL COMMENT '菜单类型:menu-菜单,button-按钮',
|
||||
menu_name VARCHAR(100) NOT NULL COMMENT '菜单名称',
|
||||
@ -1891,7 +1898,7 @@ CREATE TABLE t_auth_menu (
|
||||
|
||||
-- 用户角色关联表
|
||||
CREATE TABLE t_user_role (
|
||||
id BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '主键 ID(数据库自增)',
|
||||
id BIGINT PRIMARY KEY COMMENT '主键 ID(雪花算法)',
|
||||
user_id BIGINT NOT NULL COMMENT '用户 ID',
|
||||
role_id BIGINT NOT NULL COMMENT '角色 ID',
|
||||
create_time DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
|
||||
Loading…
Reference in New Issue
Block a user