【问题标题】:What are the reasons behind the schema of the ASP.NET Membership DB schema?ASP.NET Membership DB 模式背后的原因是什么?
【发布时间】:2011-08-18 05:32:18
【问题描述】:

以下问题与使用 aspnet_regsql.exe(适用于 .NET 4)设置的数据库有关:

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

那个数据库有问题吗?你认为它应该以另一种方式设计吗?请提供论据。

谢谢!

【问题讨论】:

    标签: asp.net asp.net-membership


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

    【讨论】:

      【解决方案2】:

      看起来,你被分配了一个任务,一切都是有原因的,通过Asp.net Membership Documentation

      【讨论】:

        猜你喜欢
        • 2010-10-03
        • 2011-06-20
        • 1970-01-01
        • 2018-08-31
        • 2020-01-26
        • 2016-03-31
        • 2021-11-01
        • 2018-02-28
        • 1970-01-01
        相关资源
        最近更新 更多