多种用户类型的最有效的数据库结构

时间:2015-02-11 13:09:53

标签: c# inheritance database-design

我们正在使用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;。是否有任何可能的解决方案可以让我们继续使用继承结构?

0 个答案:

没有答案