ASP.NET成员资格数据库模式架构背后的原因是什么?

时间:2011-06-08 13:40:50

标签: asp.net asp.net-membership

以下问题是关于使用aspnet_regsql.exe(针对.NET 4)设置的数据库:

  1. 为什么用户名以原始格式和小写字母存储在aspnet_Users中?为什么不一直小写?
  2. 为什么Users和UsersMembership有两个不同的表?这只是因为我们可以拥有不同的会员资格/申请或是最佳做法吗?
  3. 像“IsApproved”这样的数据应该像列一样存储在数据库中吗?对我来说,它似乎是一个临时专栏,一旦获得批准,就可以删除。那么为什么不存储一个带有键/值对的表(类似“ExtendedpProperties”)。类似于其他列,如“Comment”或“LastLockoutDate”。
  4. “aspnet_PersonalizationPerUser”中“LastUpdatedDate”的用途是什么?
  5. 为什么aspnet_Profile中有两列值?
  6. 那个DB有什么问题吗?你认为它应该以另一种方式设计吗?请提供论据。

    谢谢!

2 个答案:

答案 0 :(得分:2)

  1. 任何计算列的想法是在查询期间保存执行这些计算的周期。最特别是在大型查询期间。另一个想法就是索引这些列时的想法。同样,这样做是为了节省周期。
  2. 成员资格表包含与MembershipProvider API接口相关的信息。 users表存储用户名和用户ID,这些用户名和用户ID是从许多提供程序引用的。 aspnetdb系统非常模块化,每个部分都可以通过各种提供商进行定制。这些表需要分开,以便可以重写,重定向等每个接口。
  3. 您希望在哪里存储此信息?
  4. 也许您想知道用户或应用程序上次更改WebParts的时间
  5. PropertyNames包含一个字符串值,其中包含有关PropertyValuesString和PropertyValuesBinary字段中存在的配置文件属性值的信息。 The string holds a colon-delimited list of items.

答案 1 :(得分:0)

看起来,你已经获得了一项任务,一切都是有原因经过Asp.net Membership Documentation