Database design 如果有一个中心用户表和不同的角色表,如何在TypeForm中设计实体
假设我正在设计一个学校网站,有很多角色,比如学生、老师、管理员 我的数据库设计是这样的Database design 如果有一个中心用户表和不同的角色表,如何在TypeForm中设计实体,database-design,entity,nestjs,typeorm,Database Design,Entity,Nestjs,Typeorm,假设我正在设计一个学校网站,有很多角色,比如学生、老师、管理员 我的数据库设计是这样的 那么,考虑到易于阅读和易于保存,如何在Type中设计实体更好? [更新] 最后,我这样设计,我只是将所有角色合并到一个角色表中,角色类型表示不同的角色,例如5表示管理员,3表示教师,2表示学生 但是,有两列冗余,学校id和班级id。 这两个栏目对管理员来说是不必要的,因为管理员不属于任何一个学校或班级,但如果我试图将这两个栏目放在其他表格中记录,那似乎是另一种浪费和更复杂 我很想: 使所有表成为实体 在您的
那么,考虑到易于阅读和易于保存,如何在Type中设计实体更好?
[更新] 最后,我这样设计,我只是将所有角色合并到一个角色表中,角色类型表示不同的角色,例如5表示管理员,3表示教师,2表示学生 但是,有两列冗余,学校id和班级id。 这两个栏目对管理员来说是不必要的,因为管理员不属于任何一个学校或班级,但如果我试图将这两个栏目放在其他表格中记录,那似乎是另一种浪费和更复杂 我很想:{
user_id: 11,
phone: '555-444-3333',
school_id: '1234567',
user: {
id: 11',
nickname: 'Jack',
username: 'jblack',
...
}
}
示例实体
@Entity()
export class User {
@PrimaryGeneratedColumn()
id: number;
@OneToMany(type => Role, role => role.user)
roles: Role[];
@OneToMany(type => Student, student => student.user)
students: Student[];
//TODO add the rest
}
@Entity()
export class Role {
@PrimaryGeneratedColumn()
id: number;
@ManyToOne(type => User, user => user.role)
roles: Role[];
//TODO add the rest
}
我很想:
{
user_id: 11,
phone: '555-444-3333',
school_id: '1234567',
user: {
id: 11',
nickname: 'Jack',
username: 'jblack',
...
}
}
示例实体
@Entity()
export class User {
@PrimaryGeneratedColumn()
id: number;
@OneToMany(type => Role, role => role.user)
roles: Role[];
@OneToMany(type => Student, student => student.user)
students: Student[];
//TODO add the rest
}
@Entity()
export class Role {
@PrimaryGeneratedColumn()
id: number;
@ManyToOne(type => User, user => user.role)
roles: Role[];
//TODO add the rest
}
谢谢,我更新了我的设计,但看起来仍然不完美谢谢,我更新了我的设计,但看起来仍然不完美