2017-04-18 54 views
0

我在處理數據庫設計的最佳方法方面提出了一些建議。我們目前有一個數據庫,可以記錄每臺機器的事件。如何在MySQL中記錄事件發生的次數

列是uid,machine_id,event_id。每個事件都進入數據庫,這意味着有大量的記錄!由於可以在任何一天爲machine_id輸入多個事件(事件可能發生多次或根本不發生)。

我試圖建立的數據庫: UID,machine_id,事項標識,打 並設置machine_id和事項標識作爲唯一索引,然後做一個REPLACE INTO寧可插入 - 但後來我得到一個與不能夠更新命中,因爲我不能做一個命中的問題=命中+ 1

所有我想要做的就是拿出保留的數據最流成蔭的方式,我需要讓我可以計算每臺機器有多少個event_ids。任何建議或幫助非常感謝。提前致謝。

回答

1

使用INSERTON DUPLICATE KEY UPDATE

INSERT INTO events (machine_id, event_id, hits) 
VALUES (:machine_id, :event_id, 1) 
ON DUPLICATE KEY UPDATE hits = hits + 1 
+0

這是如此簡單,正是我一直試圖做的,非常感謝。 –

相關問題