因此,我幾乎完成了我的通知系統,並且在即將實施reCAPTCHA之前,我測試瞭如果我發送垃圾郵件通知會發生什麼情況。我應該使用Global ID's還是爲我的通知系統找到其他解決方案?
給你一些我的通知系統的背景。我通過它的時間戳確定最新的內容。我從數據庫ORDER BY時間戳中檢索行。時間戳值是一個格式爲Unix Time的整數。當顯示通知,他們是超鏈接,遵循此URL格式 -
http://test.com/article/id
其中ID爲表的ID,每次新的文章被提交,該ID的增量。垃圾郵件發送通知後,我注意到垃圾郵件通知的URL是相反的順序。經過進一步調查後,我發現如果我的垃圾郵件速度夠快,時間戳變量不夠準確,並且記錄了多個具有相同時間戳的提交。
由於我的網站現在流量很低,而且提交的文件也不多,所以目前這不是一個問題,但是如果一個非常小的機會,但是如果一段內容與另一個同時提交,當他們被錯誤提交時,通知將排名靠前,這是一個很小但很煩人的錯誤。
所以我想知道我該怎麼做。我應該解決這個問題,還是這是一個非常微小的機會發生。由於reCAPTCHA的實施,垃圾郵件並不是問題,但仍有可能偶然發生。
我已經想出了3種可能的解決方案。我的問題是哪個是最高效的
- 爲所有4種類型的內容創建一個全局ID,每次創建評論,文章或更新時都會增加。
- 使用更精確的PHP時間函數,如microtime
- 添加某種次級排名的可變
曾經有人做過適當的負載測試...... –
對於初學者來說,'timestamp'列不應該是一個整數,而應該是'DATETIME'。如果你有'AUTO_INCREMENT' id列,你不需要'ORDER BY timestamp'。你已經有了一個按ID排序的結果集。 – Shef
對不起,我沒有添加,但我有多個表,爲每個不同類型的內容,一個用於評論,一個用於文章等。請參閱http://stackoverflow.com/questions/7538833/how-to-structure-this -sql-query-combining-multiple-tables – liamzebedee