【问题标题】:Storing addtional user properties in AspNetUsers在 AspNetUsers 中存储附加用户属性
【发布时间】:2018-08-13 12:10:40
【问题描述】:

在向 AspNetUsers 表扩展/添加属性时,最佳做法是什么? (.Net Core 2.0)

1) 您可以在 AspNetUsers 表中添加其他属性

2) 您可以将内容放入声明中

3) 您可以在属性中放置对另一个表的引用

4) 您可以使用 user.id 并将其与更多数据一起存储在另一个表中

那么最佳做法是什么?

【问题讨论】:

    标签: .net asp.net-mvc .net-core asp.net-identity asp.net-core-2.0


    【解决方案1】:

    嗯,#1 和#2 都可以接受,具体取决于具体情况。但是,#3 和#4 是应该避免的不良做法。这类似于 ASP.NET Membership 与UserProfile 一起使用的机制,但这只是必要的,因为User 是一个无法操作的固定实体。标识被设计为可扩展的,所以扩展它。

    在决定是否使用属性或声明方面,主要取决于数据类型。如果您在谈论诸如FirstNameLastName 之类的东西——同样适用于每个用户的东西——我会选择属性。相反,我会为 Facebook 访问令牌之类的东西使用声明。将其存储在 AspNetUsers 表中会导致数据库的非规范化,因为许多用户只会对该列具有 NULL。声明本质上设计为特定于用户和临时的。

    【讨论】:

    • 这是一个很好的方式来构建属性和声明。用户之间一致的属性应该是属性,而其他属性应该是声明以避免非规范化。例如,如果我想向用户添加个人资料图片,我会使用添加属性,因为它适用于每个用户?您何时会使用声明的其他示例是什么?
    猜你喜欢
    • 2016-10-24
    • 2019-09-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多