在向AspNetUsers表扩展/添加属性时,最佳做法是什么? (.Net Core 2.0)
1)您可以在AspNetUsers表中添加其他属性
2)你可以把事情放在索赔中
3)您可以在属性中添加对另一个表的引用
4)您可以使用user.id并将其与更多数据一起存储在另一个表中
那么最佳做法是什么?
答案 0 :(得分:3)
嗯,#1和#2都是可以接受的,具体取决于具体情况。但是,#3和#4是应该避免的不良做法。这类似于ASP.NET成员与UserProfile
一起使用的机制,但这只是必要的,因为User
是一个无法操纵的固定实体。身份被设计为可扩展的,所以扩展它。
在决定是否使用属性或声明时,主要取决于数据类型。如果您正在谈论FirstName
,LastName
等内容 - 同样适用于每个用户的内容 - 我会选择属性。相反,我会使用诸如Facebook访问令牌之类的东西。将此存储在AspNetUsers
表上会导致数据库的非规范化,因为很多用户只会为该列使用NULL。声明本质上是根据用户特定和瞬态设计的。