我正在使用ASP.NET MVC 5构建一个SaaS应用程序,我需要存储两种不同类型的用户,这些用户将为每个用户存储不同的字段信息。将有Subscibers和General Users,其中每个General用户都属于Subscriber。因此,每个用户都将拥有一个父订户。
我是否应该使用单个ASPNETUSERS表来存储所有用户(订阅者/一般用户),并在同一个表中为每个用户存储自定义列?我认为必须有更好的做法来实现这一目标。由于这将是一个SaaS应用程序,我们将用户信息存储在一个数据库中的多个实体上,我们应该采用什么样的数据库设计?
供参考,这是我目前的数据库设计 -
id [用户的主键] 电子邮件 密码 sub_name [订户名称。仅当用户是订阅者时才会填充] sub_address [订户地址,仅当用户是订户时才会填充] status [如果用户处于活动状态则存储] parent_id [父母的身份。仅当用户是普通用户时才会填充此内容]
除此之外,我们将注册每个用户的角色(订阅者/普通用户)
请指教。谢谢你的帮助。
答案 0 :(得分:0)
您应该使用单个表并在代码中为不同类型的用户创建两个类。具有实体框架的ASP表使用每个层次结构的表(由鉴别器列给出):
public class Subscriber : IdentityUser {
public virtual List<GeneralUser> GeneralUsers {get; set;}
//other properties
}
然后创建您的普通用户:
public class GeneralUser : IdentityUser {
public virtual Subscriber Subs {get; set;}
//other properties
}