假设我正在设计一个学校网站,并且有很多角色,例如学生,老师,管理员...
我的数据库设计看起来像这样
然后,考虑易于阅读和易于保存的方法,如何在typeorm中设计实体更好?
[更新] 最后,我像这样设计,我只是将所有角色合并到一个ROLE表中,而role_type表示不同的角色,例如。 5表示管理员,3表示老师,2表示学生。
但是,有2列冗余,school_id和class_id。 这2列对于管理员来说不是必需的,因为admin不属于任何一个学校或班级,但是如果我尝试将这2列放入其他人记录,这似乎是另一种浪费和复杂性
答案 0 :(得分:2)
我很想这样做:
这样,您对角色表的查询可以检索“用户”关系,从而生成合理的JSON表示形式:
Request.GetOwinContext().Request.Host.Value
示例实体
{
user_id: 11,
phone: '555-444-3333',
school_id: '1234567',
user: {
id: 11',
nickname: 'Jack',
username: 'jblack',
...
}
}