【问题标题】:Tracking anonymous user activity跟踪匿名用户活动
【发布时间】:2009-03-24 21:10:29
【问题描述】:

我需要跟踪启用了 cookie 的匿名用户。

基本上,他们会浏览网站并与之互动,我希望在无需实际注册的情况下为他们提供最佳体验。稍后,如果他们愿意,他们可以注册,他们的网站活动将与他们的新帐户相关联。

类似于 Stackoverflow,但不同之处在于我预计我的大多数用户实际上不会注册,但偶尔会回来。

所以,我不想在用户表中创建一堆虚拟记录。因为我只需要一张桌子,所以我在考虑这样的事情:

投票历史表

Id    TrackingToken    VotingData
1     100             ...
2     100             ...
3     101             ...
4     102             ...

用户表

Id    TrackingToken    OtherUsersColumns
1     100             ...

TrackingTokens 表

LastTrackingToken
102

我会增加一个 LastTrackingToken 整数字段,然后简单地将该值添加到用户 cookie 并使用它来跟踪他的投票活动。然后,如果他决定注册,我只需将他的 cookie TrackingToken 值添加到他的用户记录中。

最初我在考虑一个 Guid/uniqueidentifier,但由于投票表会非常大,我需要查询它,所以我担心为 uniqueidentifier 字段编制索引。

所以,问题是(对不起 3 个子问题,但它们是如此相关,我认为上下文很重要,所以我不想重复问题和上下文描述):

  1. 整数字段在性能和索引方面是否更好?请记住 TrackingToken 不是主键字段!

  2. 您还有其他想法可以完成我概述的场景吗?

  3. 如果我决定手动生成整数 TrackingToken,可靠地生成/增加新 TrackingToken 的最佳方法是什么?假设大量并发用户会访问数据库。

【问题讨论】:

  • 因此,您的问题归结为:“对 uniqueidentity 字段进行索引是否对 sqlserver 中的性能不利(版本未知)...顺便说一句,您如何保留匿名用户的个人资料数据”。看起来像是两个不同问题的材料。
  • 并非如此,性能只是问题的一部分。对于我概述的场景,我想听听其他一些想法:跟踪匿名用户活动。
  • Re #3;看起来您的 TrackingToken 可能只是 SQL Server 表中的自动递增标识列。这还不够吗?
  • 当然可以,但是在哪个表中?它不能在 VoteHistory 中,因为正如您在示例中看到的那样,该列中令牌的值不是唯一的。还是我误会了你?

标签: c# sql-server asp.net-mvc


【解决方案1】:

要回答你在这个多问题中的第二个问题(你还有其他想法我可以如何完成我概述的场景),请参阅这些:

efficient ways to anonymous personalization using ASP.NET + Cookie

How can I create a local user profile for the anonymous user of an ASP.Net MVC application under IIS 7?

How can I support anonymous users with my application?

所有都与 ASP.NET 中的匿名配置文件有关。

【讨论】:

  • 您提供的链接几乎与问题完全无关。
【解决方案2】:

Guid 对于索引来说还不错。需要考虑的一件事是,如果有人想尝试玩弄您的系统,Guid 将不会那么容易在 cookie 中捏造。

【讨论】:

  • 我会加密 cookie 中的值,所以我认为这不是一个真正的问题。
【解决方案3】:

(对于问题 3) 如果您决定对 TrackingTokens 使用手动生成,只需确保您在交易中保留整数,并且您几乎可以保证您将拥有唯一的整数。您还可以考虑让 SQL Server 自动为您分配它们,它们也将是唯一的。

【讨论】:

    【解决方案4】:

    每次新用户执行某些操作(例如投票)时创建访客用户帐户有什么问题?发生这种情况时,您使用 UUID 或其他一些唯一 ID(不是您建议的整数,以增加安全性)保存一个 cookie,一旦该用户注册,您所要做的就是将用户组从 'guest' 更改为 'member '。很简单。

    【讨论】:

      猜你喜欢
      • 2011-09-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-09
      • 1970-01-01
      • 2015-05-27
      • 2012-05-30
      相关资源
      最近更新 更多