如何在 ASP.NET Core 中使用 EF 管理多个用户

How to manage multiple users with EF in ASP.NET Core

我正在为语言学习中心设计数据库。我有 3 个科目要管理:adminteacherstudent.

我应该在数据库中创建一个 teacher 和一个 student table 吗?如果是这样 - 我应该如何设计它们?不然怎么只管理一个用户对象?

我设计了AppUserclass继承身份用户class,学生和老师class继承自AppUserclass,这是一个好方法吗?

更好的解决方案是在数据库中创建一个教师和一个学生table。因为他们的角色是完全不同的,这样就可以把各自的业务完全分开。降低设计的复杂度。

创建一个登录页面,可以提供一个下拉列表供用户选择自己的角色,根据用户的角色查询数据库,然后将用户和用户的角色填写到身份中,实现认证。

您可以使用 AspNetRoles table。并将其绑定到 AspNetUsers table。您不需要创建教师和学生 table.

如何处理这个问题归结为首先将逻辑分为“可以做”和“有”两个容器。

如果您的对象具有独特的关系(假设教师有多个 Table 关系是它们独有的),那么您想为它们使用不同的表。

但是,如果您可以充分简化关系,使它们在功能上相同(即,教师和学生都有一个课堂关系,尽管这对他们来说意味着不同的东西,但可以作为同一列重新使用对于两者),那么您想通过 Roles 来处理这种差异。

角色允许您对网站的各个部分应用授权。

执行上述两项操作可能也是最佳做法。

处理“多用户类型”风格的界面时,您通常需要谨慎选择注册用户的方式。您要通过邀请 emails/codes 进行吗?或者管理员手动创建用户并且根本没有注册形式?