我正在爲我的網站上的配置文件製作一個「近期活動」選項卡,並且我還將有一個日誌讓審查人員查看網站上發生的所有事情。這需要製作某種活動日誌。製作活動日誌的最有效方法
我只是不知道會更好。我有兩個選擇:
- 建立一個叫做「活動」表,然後每次有人做一些其它事情,一個記錄添加到它的動作類型,用戶ID,時間戳等
- 問題:表可能會變得很長。
- 加入所有3個表(問題,答案,answer_comments),然後按照操作順序在頁面上以某種方式顯示所有這些內容。
- 問題:這將是非常困難的,因爲我不知道我怎麼會讓它說「約翰對問題標題下面的答案評論說:」由剛剛加盟3個表。
有誰知道在這種情況下進行的活動日誌的更好的辦法?我正在使用PHP和MySQL。如果這要麼效率太低或太低,我可能會忘記配置文件上的最近活動選項卡,但我仍然需要主持人的活動日誌。
下面是一些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由於某些原因,在評論中它似乎很顯示問題標題作爲標題,然後爲答案它根本沒有顯示標題:http: //screencast.com/t/qvDzliDs9U我知道有些東西還沒有像'$ row ['qSlug']'和東西(這是標題的URL段落),但不應該影響其他的東西。 – Nathan
關聯關鍵字的名稱來自** first **'SELECT'。您應該首先選擇所有常用列('id,created,q_id,q_title'),然後選擇最後的不同列('a.ans_id'和'ac.id')。這不是一個缺陷 - 'UNION'是爲選擇相同的數據而設計的。至於空白標題,您正在使用'qTitle'而不是'q_title'。 – andrewtweber