[英]What is the best practice for storing user type specific properties while using ASP.NET Core Identity?
我在這里看到了類似的帖子,但是,答案並沒有讓我滿意。
我的應用程序中有 2 種不同類型的用戶。 它們都有不同的屬性,我需要存儲在數據庫中。 例如,我的Student
用戶類型有StudentId
和RegistedDate
字段,而Instructor
用戶類型有Major
字段。
我能夠使用身份作為身份驗證機制。 我創建了Student
和Instructor
角色,讓我知道誰可以訪問應用程序的哪個部分,我很擅長。
我也許可以將不同類型的通用屬性(例如Gender
)放入擴展IdentityUser
的ApplicationUser
class 但是,我不確定應該如何存儲特定於用戶類型的信息。 我應該為每種用戶類型擴展此ApplicationUser
class 一次並擁有一個巨型表,還是應該為在ApplicationUser
class 中具有Id
作為外鍵的每種用戶類型創建單獨的表? 還是我應該做一些完全不同的事情?
我相信很多人之前都遇到過並解決了這個問題。 解決此問題的最佳做法是什么?
我相信您應該為學生 class 和講師 class 創建單獨的表,並使用 ApplicationUser class 的外鍵。
假設您使用的是 EF Core,下面是一個示例:
public class Student
{
public int StudentId { get; set; }
// EF Core automatically creates a Foreign Key for you
public ApplicationUser ApplicationUser { get; set; }
}
public class Instructor
{
public int InstructorId { get; set; }
// EF Core automatically creates a Foreign Key for you
public ApplicationUser ApplicationUser { get; set; }
}
In your ApplicationDbContext class:
public DbSet<ApplicationUser> AppUsers { get; set; }
public DbSet<Student> Students { get; set; }
public DbSet<Instructor> Instructors { get; set; }
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.