【问题标题】:How do I save user specific data in an asp.net site?如何在 asp.net 站点中保存用户特定数据?
【发布时间】:2010-06-01 06:54:10
【问题描述】:

我刚刚使用 wvd 使用 asp.net 3.5 设置了用户配置文件。 对于每个用户,我想存储他们每天都会更新的数据。 例如,每次他们去跑步时,他们都会更新时间和距离。我打算让他们也可以从任何过去的日期查看他们的距离和时间历史。 我的问题是,对于这样的设置,数据库模式通常是什么样的?目前,当我制作用户配置文件时,asp.net 为我设置了一个数据库。我只是为每个用户添加一个额外的表吗?是否应该有一张包含所有用户数据的大表?我如何将我想要的用户与他们的特定数据联系起来? ETC.... 我以前从未这样做过,所以任何关于通常如何完成的想法都会非常有帮助。谢谢你。

【问题讨论】:

    标签: asp.net database database-design user-interface


    【解决方案1】:

    一种简单的方法是向 aspnetdb 数据库添加一个 (one) 表,该表将用于跟踪所有用户配置文件的运行会话数据。将其命名为 RunnerSessions 或类似名称,在表格中添加以下列:

    • UserID(使用此字段存储来自 ASP.NET 的配置文件 ID)
    • SessionDate(使用此字段存储运行会话日期)
    • SessionDistance(使用此字段记录与特定跑步会话的距离)

    最好将 UserID + SessionDate 字段作为 RunnerSessions 表的主键或创建另一个名为 的字段>SessionID并将其设置为自动编号。

    要将每个配置文件与 RunnerSessions 表中的特定记录相关联,您可以将 HttpContext.Current.User.Identity.Name 存储在 UserID 上面提到的字段。

    【讨论】:

    • 如果用户 ID 用于向用户提供数据,为什么拥有主键很重要? (任何好的初学者参考资料?- SQL Server Express 2005)
    • 主键将为您提供:1)特定记录的唯一标识符(在您的情况下,它是用户 ID 以及该用户何时运行)或会话 ID(如果您转而使用该路线)。 2) 使搜索/查询更快的索引,这通常是一件好事。
    【解决方案2】:

    您要求的是关系数据库设计。由于关系数据库设计本身就是一门艺术,并且在很大程度上取决于许多特定情况的条件,因此我无法为您提供现成的架构。

    由于我从未阅读过任何有关此的在线教程,因此我也不会在此处发布链接。但是您应该可以通过在您最喜欢的搜索引擎中搜索关系数据库设计(教程)来开始。

    也许有人知道一个很好的教程并可以发布链接?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多