【问题标题】:Best way to store ASP.NET 4.5 MVC user data存储 ASP.NET 4.5 MVC 用户数据的最佳方式
【发布时间】:2015-07-27 15:29:15
【问题描述】:

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

在首次登录时(以及之后的任何时候),用户输入 Web 应用所需的永久信息(姓名、DoB、地址等) 将需要几个到几十个设置,而且我听说最佳实践要求即使超过表中少至 10 列也需要重新评估您的范例。

从理论上说,我可以将设置分解为不同的类型。会有任何性能/组织/可用性/等吗?从为每个不同的部分创建不同的表中受益吗?

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

谢谢!

【问题讨论】:

标签: c# mysql asp.net-mvc


【解决方案1】:

【讨论】:

  • 链接中提供的方法完美无缺。谢谢!
【解决方案2】:

在我看来,破坏不同表上的所有用户信息的收益为 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 能够基于此类根据请求添加/修改列。

问候

【讨论】:

  • 如果您每次找到用户时要访问 4 或 5 个表,并且都是 1:1 的东西,那么性能会受到一点影响
猜你喜欢
  • 2013-09-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-08
  • 2012-06-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多