Cómo escribir “Última aparición” lógica de esa manera desbordamiento de pila

StackOverflow https://stackoverflow.com/questions/3188826

  •  02-10-2019
  •  | 
  •  

Pregunta

Estoy trabajando en una aplicación que tiene una lógica similar como SO con respecto a cuando el usuario fue visto por última. Me he encontrado con un problema conceptual que espero que algunos de ustedes ayuda lata de Gurú me fuera con.

Toda la actividad se registra en una tabla en la base de datos ActivityLog

Cuando un usuario conectado golpea en el sitio y se crea una nueva sesión, actualizar el registro de actividades con el ID de usuario y algo de información muy genérica. Lo mismo ocurre cuando se crea un nuevo registro, actualizar su perfil, etc.

El problema que estoy teniendo es esto.

Si utilizo el artículo actividad más reciente, a continuación, vaya a mi página de cuenta personal, la "Última aparición" se muestra como 1 Hace segundo porque me acaba de golpear el PP en inicio de la sesión ... Esto no es bueno porque quiero para ver lo que era "último" no, no cuando estoy allí "ahora".

Sin embargo, si uso Skip(1).Take(1) para conseguir el segundo registro en la base de datos, a continuación, cuando alguien ve mi perfil, mientras que puede haber "sólo" firmado el ... van a ver que yo estaba en decir hace una semana y no hoy.

¿Qué tipo de lógica que utilice con el fin de tener su pastel y comérselo también?

Estoy usando ASP.NET MVC2 y LINQ to SQL, pero creo que esta pregunta es más agnóstico idioma.

¿Fue útil?

Solución

Parece que sólo podía mostrar el segundo registro más reciente para el usuario actual, y para todos los demás usuarios muestran la más reciente.

Otros consejos

Lo que yo haría (simplemente para evitar un bucle lógica grande) sería añadir dos campos. current_seen y last_seen. Al iniciar la sesión movimiento current_seen a last_seen y conjunto current_seen a la timestampe actual. A continuación, muestre last_seen como su "última vez el XX / XX / XXX".

Un lugar para buscar es en el código fuente para OSQA (la fuente q abierta y un sistema) -

http://www.osqa.net/

Y sí, se parece mucho a StackOverflow (por decir lo menos).

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top