Il n'est pas nécessaire d'enregistrer l'ID de session. Voulez-vous utiliser l'ID de session pour enregistrer l'heure de la dernière opération de sortie anormale ? La dernière donnée connectée par le même utilisateur doit être une opération de déconnexion 1. Déconnexion normale, la donnée suivante doit être une connexion 2. Fermeture anormale après une opération normale (ajouter, supprimer). , modifier, vérifier), la prochaine fois doit être la même C'est une opération de connexion
Donc, la durée d'une connexion est l'heure de connexion actuelle - l'heure de l'enregistrement précédent avant la prochaine connexion
Cependant, si l'utilisateur ne se connecte pas après un arrêt anormal, il doit être traité séparément. Par exemple, si l'ID de session expire sans opération pendant 20 minutes, vérifiez si le dernier enregistrement remonte à plus de 20 minutes. Il y a plus de 20 minutes, cela sera considéré comme une sortie anormale.
Lors de la connexion, l'heure de connexion est enregistrée dans la session et l'heure de sortie est définie sur : heure de connexion + heure d'expiration.
Lorsque l'utilisateur est actif, en fonction de l'heure de connexion enregistrée dans la session, l'heure de sortie de cet enregistrement est mise à jour : heure actuelle + heure d'expiration.
Lors de la sortie, en fonction de l'heure de connexion enregistrée dans la session, l'heure de sortie de cet enregistrement est mise à jour à : l'heure actuelle.
Donnez-moi quelques idées. Personnellement, je pense que ce n'est pas facile à mettre en œuvre (le traitement logique nécessite PHP, et la pagination est également gênante. Il faut l'afficher en pagination en fonction de la date, mais pas en fonction du nombre d'enregistrements pris. comme limit 1 , 10 Pour la pagination, un seul SQL ne peut pas obtenir la structure de la table finale), nous ne pouvons donc aller qu'ici....
Puis-je poser une question à tout le monde ? La connexion peut être enregistrée, mais comment enregistrer la déconnexion ? L'utilisateur ne peut pas réellement cliquer sur le bouton de déconnexion. S'il s'agit du Web, l'utilisateur peut simplement fermer le navigateur et le laisser tranquille. Comment savoir quand vous vous êtes déconnecté ? session?
Il n'est pas nécessaire d'enregistrer l'ID de session. Voulez-vous utiliser l'ID de session pour enregistrer l'heure de la dernière opération de sortie anormale ?
La dernière donnée connectée par le même utilisateur doit être une opération de déconnexion
1. Déconnexion normale, la donnée suivante doit être une connexion
2. Fermeture anormale après une opération normale (ajouter, supprimer). , modifier, vérifier), la prochaine fois doit être la même C'est une opération de connexion
Donc, la durée d'une connexion est l'heure de connexion actuelle - l'heure de l'enregistrement précédent avant la prochaine connexion
Cependant, si l'utilisateur ne se connecte pas après un arrêt anormal, il doit être traité séparément. Par exemple, si l'ID de session expire sans opération pendant 20 minutes, vérifiez si le dernier enregistrement remonte à plus de 20 minutes. Il y a plus de 20 minutes, cela sera considéré comme une sortie anormale.
Quoi qu'il en soit, il doit y avoir une identification de l'utilisateur pour déterminer de quel journal de comportement de l'utilisateur il s'agit,
Lors de la rédaction du journal, écrivez le décalage horaire entre chaque connexion et déconnexion dans le journal et ajoutez-le à la fin ?
La table peut être conçue comme ça
Lors de la connexion, l'heure de connexion est enregistrée dans la session et l'heure de sortie est définie sur : heure de connexion + heure d'expiration.
Lorsque l'utilisateur est actif, en fonction de l'heure de connexion enregistrée dans la session, l'heure de sortie de cet enregistrement est mise à jour : heure actuelle + heure d'expiration.
Lors de la sortie, en fonction de l'heure de connexion enregistrée dans la session, l'heure de sortie de cet enregistrement est mise à jour à : l'heure actuelle.
Tableau original (supposé) :
Tableau final généré :
Processus détaillé :
Donnez-moi quelques idées. Personnellement, je pense que ce n'est pas facile à mettre en œuvre (le traitement logique nécessite PHP, et la pagination est également gênante. Il faut l'afficher en pagination en fonction de la date, mais pas en fonction du nombre d'enregistrements pris. comme
limit 1 , 10
Pour la pagination, un seul SQL ne peut pas obtenir la structure de la table finale), nous ne pouvons donc aller qu'ici....Puis-je poser une question à tout le monde ? La connexion peut être enregistrée, mais comment enregistrer la déconnexion ? L'utilisateur ne peut pas réellement cliquer sur le bouton de déconnexion. S'il s'agit du Web, l'utilisateur peut simplement fermer le navigateur et le laisser tranquille. Comment savoir quand vous vous êtes déconnecté ? session?