存储ASP.NET 4.5 MVC用户数据的最佳方法

时间:2015-07-27 15:29:15

标签: c# mysql asp.net-mvc

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

首次登录时(以及之后的任何时间),用户输入Web应用程序所需的持久信息(名称,DoB,地址等) 将会有几个到几十个必需的设置,我听说最佳实践要求即使在表中只有10列也要过去,需要重新评估您的范例。

让我们说道,我可以将设置分解为不同的类型。是否有任何表现/组织/可用性/等。是否可以为每个不同的部分创建不同的表?

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

谢谢!

2 个答案:

答案 0 :(得分:1)

答案 1 :(得分:1)

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

如果您使用Entity Framework和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")
  {

  }
}

使用迁移,Entity Framework能够根据此类添加/修改列。

问候