Отслеживание активности анонимного пользователя - PullRequest
2 голосов
/ 25 марта 2009

Мне нужно отслеживать анонимных пользователей с включенными куки.

По сути, они будут проходить через сайт, взаимодействовать с ним, и я хотел бы дать им максимально возможный опыт, не требуя фактической регистрации. Позже, если они захотят, они могут зарегистрироваться, и их активность на сайте будет привязана к их новой учетной записи.

Что-то вроде Stackoverflow, но с той разницей, что я ожидаю, что большинство моих пользователей на самом деле не будут регистрироваться, а иногда просто возвращаются.

Итак, я не хочу создавать несколько фиктивных записей в таблице Users. И так как мне нужно это только для одного стола, я думал о чем-то вроде этого:

Таблица голосования История

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

Таблица пользователей

Id    TrackingToken    OtherUsersColumns
1     100             ...

Таблица отслеживания токенов

LastTrackingToken
102

Я бы увеличил целочисленное поле LastTrackingToken и просто добавил бы это значение в файл cookie пользователя и отслеживал его активность при голосовании. Затем, если он решит зарегистрироваться, я просто добавлю его значение cookie TrackingToken в его запись пользователя.

Изначально я думал о Guid / uniqueidentifier, но, поскольку таблица голосования будет очень большой, и мне нужно будет запросить ее, я беспокоюсь об индексации поля uniqueidentifier.

Итак, вопросы есть (извините за 3 подвопроса, но они так связаны, и я думаю, что контекст важен, поэтому я не хочу дублировать описание вопроса и контекста):

  1. Целочисленное поле лучше, когда речь идет о производительности и индексации? Имейте в виду, что TrackingToken не является полем первичного ключа!

  2. У вас есть какая-то другая идея, как я мог бы выполнить сценарий, который я изложил?

  3. Если я решу заняться ручным генерированием целочисленных токенгеров, каков будет лучший способ надежно генерировать / увеличивать новый трекингтокен? Предположим, много одновременно работающих пользователей получат доступ к базе данных.

Ответы [ 4 ]

2 голосов
/ 25 марта 2009

Чтобы ответить на 2-й из ваших вопросов в этом многократном вопросе ( У вас есть какая-то другая идея, как я мог бы выполнить описанный мной сценарий ), см. Эти вопросы:

эффективных способов анонимной персонализации с использованием ASP.NET + Cookie

Как создать профиль локального пользователя для анонимного пользователя приложения ASP.Net MVC под IIS 7?

Как я могу поддержать анонимных пользователей в моем приложении?

Все относится к анонимным профилям в ASP.NET.

1 голос
/ 25 марта 2009

Guid неплох для индекса. Одна вещь, о которой стоит подумать, Guid будет не так легко обмануть в cookie, если кто-то захочет попробовать игру в вашей системе.

0 голосов
/ 17 января 2011

В чем проблема создания гостевых учетных записей каждый раз, когда новый пользователь выполняет какое-либо действие (например, голосование)? Когда это происходит, вы сохраняете cookie с UUID или другим уникальным идентификатором (не целое число, как вы предлагаете, для дополнительной безопасности), и как только этот пользователь регистрируется, все, что вам нужно сделать, это изменить группу пользователей с «гостя» на «участника» ». Простой.

0 голосов
/ 25 марта 2009

(для вопроса 3) Если вы решили использовать ручную генерацию для TrackingTokens, просто убедитесь, что вы зарезервировали свои целые числа в транзакции, и вы в значительной степени уверены, что у вас будут уникальные. Вы также можете разрешить серверу SQL автоматически назначать их для вас, и они тоже будут уникальными.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...