用户(user)
SQL
字段 |
类型 |
约束 |
注释 |
---|
user_id |
int |
主键,自增 |
ID |
name |
varchar(20) |
非空 |
名字 |
实体类
public class User {
private Integer userId;
private String name;
// 关联证书(多对多)
private List<Credentials> credentials;
// 关联手机号(多对一)
private List<CellPhoneNumber> cellPhoneNumber;
// 关联身份证(一对一)
private IdentityCard identityCard;
}
多对多(证书-credentials)
使用中间表(中间表不需要映射成实体)
SQL
证书表(credentials)
字段 |
类型 |
约束 |
注释 |
---|
credentials_id |
int |
主键,自增 |
ID |
name |
varchar(20) |
非空 |
名字 |
中间表(user_credentials)
字段 |
类型 |
约束 |
注释 |
---|
user_id |
int |
非空 |
|
credentials_id |
int |
非空 |
|
实体类
public class Credentials {
private Integer credentialsId;
private String credentialsName;
// 关联用户(多对多)
private List<User> users;
}
一对多(手机号)
使用外键(不需要外键约束)
SQL(cell_phone_number)
字段 |
类型 |
约束 |
注释 |
---|
cell_phone_number_id |
int |
主键,自增 |
ID |
cell_phone_number |
varchar(20) |
非空 |
手机号 |
user_id |
int |
非空,外键 |
|
实体类
public class CellPhoneNumber {
private Integer cellPhoneNumberId;
private String cellPhoneNumber;
// 关联用户(一对多)
private User users;
}
一对一(身份证)
使用外键,唯一约束
SQL(identity_card)
字段 |
类型 |
约束 |
注释 |
---|
identity_card_id |
int |
主键,自增 |
ID |
identity_card |
char(18) |
非空 |
身份证 |
user_id |
int |
非空,外键,唯一约束 |
|
实体类
public class IdentityCard {
private Integer identityCardId;
private String identityCard;
// 关联用户(一对一)
private User user;
}