내 사이트의 프로필에 "최근 활동"탭을 만들었으며 사이트에서 발생하는 모든 사항을 볼 수있는 중재자 로그가 있습니다. 이렇게하려면 일종의 활동 로그를 작성해야합니다.가장 효율적인 활동 로그 작성 방법
나는 더 잘 될지 모르겠다.
- "활동"라는 테이블을 확인하고 때마다 누군가가 뭔가 등 행위의 유형, 사용자 ID, 타임 스탬프,
- 문제와에 레코드를 추가 않는다 : 나는 두 가지 옵션이 있습니다 : 테이블이 매우 길어질 수 있습니다.
- 3 개의 테이블 (질문, 답변, answer_comments)을 모두 결합한 다음 페이지에 모든 조치를 취한 순서대로 표시하십시오.
- 문제 : 나는 그것이 말을 할 수 있는지 단서가 없기 때문에이 매우 어려울 것이다 그냥 3 개 테이블을 조인하여 "요한이 여기에 질문 제목에 대한 답변에 댓글을 달았습니다."
사람이 상황에서 활동 로그를 만드는 더 좋은 방법을 알고 있나요? PHP와 MySQL을 사용하고 있습니다. 이 방법이 너무 비효율적이거나 어렵다면 프로파일의 최근 활동 탭을 잊어 버릴 것입니다.하지만 여전히 중재자를위한 활동 로그가 필요합니다. 여기
내가 옵션 2를 위해 만들기 시작 일부 SQL, 그러나 나는while
루프에서 정보를 에코 때이 작업이 의견, 질문 여부를 검출 할 방법이 없기 때문에 작동 또는 응답하지 않을 :
SELECT q.*, a.*, ac.*
FROM questions q JOIN answers a ON a.questionid = q.qid
JOIN answer_comments ac ON c.answerid = a.ans_id
WHERE q.user = $userid
AND a.userid = $userid
AND ac.userid = $userid
ORDER BY q.created DESC, a.created DESC, ac.created DESC
미리 도움 주셔서 감사합니다.
죄송합니다. 두 번째 것은 실제로 있어야합니다. 'a.userid' (오타였습니다). 어쨌든 고마워요! 나는 이것을 시도 할 것이고, 그것이 효과가 있다면 나는 당신의 대답을 받아 들일 것입니다. D 그리고 당신이 그것을 할 수 있다는 것을 결코 알지 못했기 때문에 코멘트, 질문 또는 대답인지를 확인하는 방법에 대해 감사드립니다. – Nathan
이것은 거의 작동합니다 :) 저는 질문 테이블에 참여하여 질문 정보를 얻는 작은 문제가있어서 연결될 수 있습니다. 여기에 SQL과 PHP가 있습니다 : http://screencast.com/t/EJgdGkMPBB 댓글에 대한 어떤 이유로 그것은 제목으로 질문 ID를 보여주고 그 다음에는 제목을 전혀 표시하지 않는 답변으로 보입니다. http : //screencast.com/t/qvDzliDs9U 나는'$ row ['SSlug ']'와 같은 것들 (제목의 URL 슬러그 임)에 영향을 미치지 않는 것들이 있다는 것을 알고있다. 다른 것들. – Nathan
연관 키의 이름은 ** 첫 번째 ** 'SELECT'에서옵니다. 모든 공통 열 (id, created, q_id, q_title')을 먼저 선택한 다음 마지막 열 ('a.ans_id'와'ac.id')을 선택해야합니다. 이것은 결함이 아닙니다. 'UNION'은 동일한 데이터를 선택하도록 설계되었습니다. 빈 제목은'q_title' 대신'qTitle'을 사용합니다. – andrewtweber