最好的方式来存储ASP.. NET 4.5 MVC用户数据

本文关键字:MVC 用户 数据 用户数 NET ASP 方式 存储 | 更新日期: 2023-09-27 18:04:50

我目前正在使用ASP创建一个web应用程序。. NET 4.5 MVC, MySQL支持我的模型。

在第一次登录时(以及之后他们想要的任何时候),用户输入web应用程序所需的持久信息(名称,DoB,地址等)。需要几个到几十个设置,我听说最佳实践表明,即使超过表中的10列,也需要重新评估您的范式。

假设理论上我可以把设置分成不同的类型。是否有任何性能/组织/可用性等?为每个不同的部分创建不同的表是否有好处?

后续问题:持久用户数据应该存储在与用户表相同的表中,还是设置应该有自己的表?我注意到有一个存储一些基本信息的AspNetUsers表。我可以用它来存储设置吗?

谢谢!

最好的方式来存储ASP.. NET 4.5 MVC用户数据

你想在Identity 2框架上扩展:

http://typecastexception.com/post/2014/06/22/ASPNET-Identity-20-Customizing-Users-and-Roles.aspx

在我看来,打破不同表上的所有用户信息没有任何好处。只有当你有一个1:N的关系时才这样做,但是如果你使用一个有很多列的表,这是没有问题的。

如果你使用实体框架和Asp。Net Identity,可以用自定义信息扩展AspNetUsers表。只需创建一个从IdentityUser:

扩展的类
public class User : IdentityUser
{
  [MaxLength(50)]
  [Required]
  public string MyAdditionalData { get; set; }
  [Required]
  public int Age { get; set; }
}
然后在Context类中:
class YourAppContext : IdentityDbContext<User>
{
  public YourAppContext()
    : base("YourAppContext")
  {
  }
}

使用迁移,实体框架能够根据请求添加/修改列,基于这个类。

问候