2017-12-30 50 views
0

인터넷을 검색했지만 관련성이 없습니다.카운트 시간은 사이트에서 매일 지출합니다.

MYSQL에서 가져올 login.log 파일이 있습니다. 매일 각 사용자가 소비하는 시간 (분)을 계산하려고합니다. 내 계획은 각 로그인 후에 테이블에 시간을 삽입하고 로그 아웃이있을 때 트리거를 사용하여 이전 로그인 시간 (마이너스)을 now()에서 빼고 새 테이블에 카운트하는 것입니다.

이 접근 방식에 대해 어떻게 생각합니까?
분은 ((logout time)-(login time)) + ((logout time)-(login time))과 같으며 계속 켜져 있습니다. 이것을 더 잘 수행 할 수있는 다른 방법이 있습니까?

각 사용자가 일 (connect=login=enter-room, disconnect=logout=quit)를 통해/로그 아웃 여러 번 로그인 할 수 있습니다 : 여기

테이블의 모습입니다.
2017년 5월 30일 12시 user46172 d4dfa596

2017년 5월 30일 12시 익명 d4dfa596-f02d-40b4-b059-eff86dfe6492 연결 :

로그 파일의 샘플입니다
2017년 5월 30일 12시 익명 72d76b17-a8f0-442a-A860 - -f02d-40b4-b059-eff86dfe6492 로그인
2017년 5월 30일 12시 user46172 d4dfa596-f02d-40b4-b059-eff86dfe6492 객실을 입력 -49483bf72a6e 연결
5/30/2017 12:00 guest5528 72d76b17-a8f0-442a-a860-49483bf72a6e 로그인
5/30/2017 12시 guest5528 72d76b17-a8f0-442a-a860-49483bf72a6e 룸 입력 -
2017년 5월 30일 12시 guest7632의 0321676a-f22f-4d2f - 아카 - b8759e349ab6 분리
2017년 5월 30일 12시 1분 user46172을 d4dfa596-f02d-40b4-b059-eff86dfe6492 실내 종료 -
2017년 5월 30일 12시 1분 user46172을 d4dfa596-f02d-40b4-b059-eff86dfe6492 로그 아웃
2017년 5월 30일 12시 2분가 jdoe의 d4dfa596-f02d-40b4- b059-eff86dfe6492 로그인
2017년 5월 30일 12시 2분가 jdoe d4dfa596-f02d-40b4-b059-eff86dfe6492 아웃
2017년 5월 30일 12시 2분가 jdoe d4dfa596-f02d-40b4-b059-eff86dfe6492 로그인
5/30/2017 12시 2 분 jdoe d4dfa596 - f02d - 40b4 - b059 - eff86dfe6492 입력 방 -
2017년 5월 30일 12시 2분 익명 186e5eae-d279-4a66 - b556-0fa4a5b179d4 어떻게 로그에 작성

+0

필자는 질문의 형식을 수정하고 일부 맞춤법/문법을 수정하고 주제 관련 부분을 다시 작성/추가했습니다. – zx485

답변

0

를 연결? 로그가 기록 될 때 로그인 또는 로그 아웃 할 때 테이블에 삽입 할 수 있습니까? 이렇게하면 트리거를 피할 수 있습니다. 다른 사람이 코드를 인수하고 테이블을 조작하기 위해 어떤 마법이 일어나는지 궁금해지기까지 좋습니다! 모든 로그인 및 로그 아웃 시간이있는 한; 쿼리를 매일 min (로그인 시간) 및 max (로그 아웃 시간)로 가져와 차이를 계산하도록 할 수 있습니다.

모든 데이터를 로그 테이블에 넣은 다음 필요에 따라 쿼리를 사용하여 다른 '캐싱'테이블에 저장하여 줄을 추가로 저장하더라도 쿼리를 사용하는 것이 가장 좋습니다.

+0

나는 Phright를 연구하려고합니다. 로그에 파일을 추가 할 때 mysql로 ​​내보내는 방법. 나는 수동으로 로그에 기록하고 있지 않다. 채팅 응용 프로그램 (123flashchat)에서 매일 생성되며 작업이있을 때마다 업데이트됩니다. – Odonel