2013-07-31 22 views
1

Hello again Stackoverflow!更新查看次數,最可靠的方法

我目前正在開發自定義論壇軟件,您喜歡在論壇上看到的內容之一是視圖計數器。

我發現的視圖計數器的所有方法都只是從數據庫中選擇主題,從「視圖」列中檢索數字,添加一個並更新它。

但是,這裏是我的想法:如果讓400說,人們在同一時間打開一個主題,MySQL數據庫可能不會計算所有視圖,因爲查詢需要時間才能完成,所以最後一個人(400人中的)可能會覆蓋(400人中的)第一個人的觀點。

當然,人們可能會爭辯說,在一個正常的網站上,這是永遠不會發生的,但是如果你有7人在同一秒內打開該話題,並且服務器在那個時刻奮鬥,你可能會遇到同樣的問題。

有沒有其他好方法來計數視圖?

編輯

哇,可能誰否決了一個指定爲什麼呢?

我通過「檢索視圖數量並添加一個」我將使用SELECT檢索數字,使用PHP添加一個(請注意標籤)並使用UPDATE更新它。我不知道下面指出的其他方法,這就是爲什麼我問。

回答

2

如果可以說400人在同一時間打開一個主題,MySQL數據庫顯然會計算所有視圖,因爲這正是數據庫的發明。

您發現的視圖計數器的所有方法都是錯誤的。要更新一個字段,你並不需要找回它,只是已經更新:

UPDATE forum SET views + 1 WHERE id = ? 
+0

現在是我的問題,怎麼樣? – Thew

+0

在顯示頁面之前,將數據庫中的視圖條目記入日期。 '更新\'views_table \'SET \'views \'= \'views \'+ 1 WHERE \'post_id \'='$ post_id'LIMIT 1;' –

+0

查看更新後的帖子,完成了。 – Thew

相關問題