私は、いくつかの計算のために "トップ10"の結果を保持するデータベース設計を考え出しています。基本的に、すべてが完了したら、3つの「トップ10」カテゴリがありますが、すべてが別々のテーブルになっていますが、戻って後でトップ10フラットファイルが機能するにもかかわらず、データベースの必要性があるため、これは何年ものデータを保持する可能性があります。トップ10のデータベース設計の助けが必要
ここでは、いくつかのシンプルなテーブルを持つもの以外の、データベースで深刻なことをしているので、しばらくしているので、このデザインを通していくつかの問題を考えています。誰かが私の設計を手伝ってくれたら、残りの部分を手に入れるのに十分なMySQLを知っています。
本質的に、私は10の名前のグループ、各名前が持っていた合計ポイントの%、彼らがトップ10に入れたランク、そしてそのトップ10に関連付けられた時間を保存する必要があります後でその時間のクエリ)
私はトップ10に11列、1つはID用、10個は 'Names'テーブルの外部キー用のテーブルが必要だと思いますPK、名前、%、およびランク。これは私にとっては控えめなようですが、他の誰かが提案していますか?
編集:「トップ10」は、5分間隔の特定のデータセットに関連付けられており、各間隔は以前または将来の間隔とは完全に独立しています。
わかりません。名前は実際に私が照会するsyslogデータから来ています。それぞれのリストは、Top 10が探しているものに応じて独自のランキングです。データは5分のチャンクで処理され、5分のチャンクはそれぞれ独立して処理されます。したがって、5分ごとのチャンクごとに、以前の5分のグループとはまったく独立したトップ10があります。 稼働中の平均または稼働中の合計ではありません。それぞれの5分間は独立しています。しかし、はい、すべてのトップ10の中に複数の名前が表示されることがあります。私は元の質問でそれを指定したはずです。 – z0dSki
提案には実行中の合計がありません。私の設計では、5分ごとにチャンクが10個のレコードがデータベースに挿入されます.10個のレコードは、「チャンクX、ボブは#1」、「チャンクXではジョーは#2でした」、チャンクXでは、ジルは#3でした」など。チャンクYを実行したときは、さらに10個のレコードを追加します。私が "時間"の代わりに "日付"を使用したという事実は、これをあなたの状況に適応させてはいけません。 –
申し訳ありませんが、あなたの投稿を誤解しました。だから、あなたは単一のテーブルを提案し、トップ10を提示する日時に厳密に基づいて質問しますか?あなたは、5分ごとの間隔が長期間収集されるたびに検索/クエリに時間がかかるとは思わないでしょうか? – z0dSki