我们正在使用asp.net MVC开发一个系统,并且在处理多个用户类型方面遇到了我们的数据库设计问题。
我们目前正在使用继承结构将用户的主要核心分成特定的用户类型,其中"学生"和#34;讲师"用户类型继承自父级"用户"类。唯一引用代码中任何用户类型的唯一方法是通过父User类中的UserID,这使得在引用讲师和添加新用户类型时会引起混淆。
这方面的一个例子:
/// <summary>
/// The UserID is a lecturer entry from the Users table.
/// </summary>
/// <param name = "UserID">This is the ID of the lecturer.</param>
[Required(ErrorMessage = "A UserID is Required")]
**public int UserID { get; set; }**
[Required(ErrorMessage = "A LevelID is Required")]
public int LevelID { get; set; }
public virtual Pathway Pathway { get; set; }
**public virtual Lecturer Lecturer { get; set; }**
public virtual Level Level { get; set; }
public virtual ICollection<ModuleClass> ModuleClass { get; set; }
public virtual ICollection<Assignment> Assignment { get; set; }
正如您所见,&#34; UserID&#34;是一个引用&#34;讲师&#34;的外键。导航属性,理想情况下我们希望它具有唯一的名称,例如&#34; LecturerID&#34;。是否有任何可能的解决方案可以让我们继续使用继承结构?