2017-05-30 12 views
-2

私の質問は、X秒ごとにインクリメントまたはデクリメントできるアイテムのリストに関する情報を保持するDBの良いデザインに関するものです。アイデアは情報を重複しないように最適化することです。インクリメンタル/デクリメントDBデザイン

例:

私は、WiFiネットワークに接続されたコンピュータに関する情報を収集し、5秒ごとに実行するスクリプトを持っていると私はDBにこの情報を保存します。スキャンでnがスキャンn-1と同じユーザーである場合、私はDBに何も保存しません。

ネットワークに接続された新しいWi-Fiクライアントに関する情報や、既存のWi-Fiクライアントに関する情報を保存するのに役立つ特定のDBデザインはありますか?

この種の増分/減算ユースケースでは、どのような種類のDBが優れていますか?これはその後、アドバイスの1枚がちょうどカウンターやアイテムのIDを保持するために「パラレル」テーブルを使用することであるが、「票アップ」または「好き」のようなものである場合

はあなたに

+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は、この問題のために最良のDBが何であるかという疑問があるので、SQLとNoSQLを公開しています。 – user1618465

答えて

0

ありがとうございます。これにより、インクリメント/デクリメントするたびに干渉(ロック)が最小限に抑えられます。

一方、アイテムに残りの情報とカウンタが必要な場合は、2つのテーブルJOINには簡単です。

1秒あたりの増減数が10ダース以下であれば、それは問題ではありません。

+0

"up votes"のようなものではありません。私が質問したところでは、ユーザがWiFiネットワークに接続したり切断したりした時間を記録しておくことです。そのキーは、接続または切断するデバイスのMACアドレスであると推測できます。 – user1618465

+0

cronジョブのための仮のSQLがありますか? –

関連する問題