2017-05-30 96 views
-2

我的問題是關於一個好的設計的數據庫將容納大約可進行增加或每X秒遞減的項目列表的信息。這個想法是優化它,所以不會有重複的信息。遞增/遞減DB設計

例子:

我有運行每5秒鐘收集關於連接WiFi網絡中的計算機信息的腳本,我想存儲在一個數據庫信息。在掃描n與掃描n-1相同的用戶的情況下,我不想在數據庫中保存任何內容。

是否有任何具體的數據庫設計,可以是有用的存儲有關連接到網絡或有關離開它的存在的無線客戶端的新的WiFi客戶端的信息?

什麼樣的DB的是這種增加/減少的用例的更好嗎?

謝謝

+1

你能澄清你的問題嗎?爲什麼認爲任何常規數據庫設置將無法處理您的使用?此外,您使用MySQL和Mongo進行標記,這是非常不同的技術。你打算使用SQL還是NoSQL? –

+0

你打算用什麼來識別你的WiFi客戶端?這是你可以用作桌子關鍵的東西嗎?然後你只需要運行一個insert-on-duplicate-key-update操作,你將會很好:https://dev.mysql.com/doc/refman/5.7/en/insert-on-duplicate.html –

+0

@ TimBiegeleisen的問題是關於什麼是這個問題最好的數據庫,所以我對SQL和NoSQL開放。 – user1618465

回答

0

如果是像「選票」或「喜歡」,那麼一個建議是使用「平行」表來保存剛纔的計數器和項目的ID。這將盡量減少干擾(鎖定)每當做增量/減量。

同時,如果你需要一個項目,再加上計數器信息的其餘部分,那麼它是JOIN兩個表很簡單。

如果你有十幾個增量較少/每秒的遞減,這其實並不重要。

+0

它不像「選票」的軌道。正如我在問題中所說的那樣,要跟蹤用戶連接和斷開WiFi網絡的時間。我們可以推測該密鑰是連接或斷開設備的MAC地址。 – user1618465

+0

你對cron作業有嘗試性的SQL嗎? –