Как записать “В последний раз Замеченную” логику как этот на Переполнении стека

Я работаю над приложением, которое имеет подобную логику как ТАК относительно того, когда пользователь был в последний раз замечен. Я столкнулся с концептуальной проблемой, что я надеюсь, что некоторые из Вас Гуру могут выручить меня с.

Все действие зарегистрировано таблица ActivityLog в базе данных

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

Проблема, которую я имею, является этим.

Если я использую новый объект действия, то перешел к моей странице личного аккаунта, "Последний Замеченный" обнаруживается как 1 секунду назад, потому что я ПРОСТО совершил нападки, дб на сессии запускаются... Это не хорошо, потому что я хочу видеть то, что я был "последним" там, не, когда я там "теперь".

Однако, если я использую Skip(1).Take(1) для получения второй записи в базе данных затем когда кто-то еще посмотрел мой профиль, в то время как я, возможно, "просто" вошел в систему..., они будут видеть, что я шел, говорят неделю назад и не сегодня.

Какую логику Вы использовали бы, чтобы иметь Ваш пирог и съесть его также?

Я использую ASP.NET MVC2 и Linq к SQL, но я думаю, что этим вопросом является больше агностика языка.

8
задан Brad Mace 12 July 2011 в 02:58
поделиться

3 ответа

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

3
ответ дан 5 December 2019 в 20:13
поделиться

Я бы сделал (просто чтобы избежать большого логического цикла) добавил бы два поля. current_seen и last_seen . При входе в систему переместите current_seen в last_seen и установите current_seen на текущую метку времени. Затем отобразите last_seen как их «Последний раз видели XX / XX / XXX».

3
ответ дан 5 December 2019 в 20:13
поделиться

Одно из мест, где можно посмотреть, - это исходный код OSQA (система вопросов и ответов с открытым исходным кодом) -

http://www.osqa.net/

И да, это выглядит очень похоже на StackOverflow (мягко говоря).

2
ответ дан 5 December 2019 в 20:13
поделиться