0

状況

私は現在、プレイヤーによるサーバーの評価を含む評価システムを見つけようとしています。ユーザーは、いくつかの異なるカテゴリでサーバーを評価できます。保守性、パフォーマンス、および評価のストレージのコンパクトさは、私が現在バランスを見つけようとしているものです. うまくいけば、これに対するいくつかの良い解決策を思いつくことができます.

必要な MB = (エントリあたりのバイト数) x (500 レビュー) x (4000 サーバー) / (1024) / (1024)

方法 1: 保守可能なブリッジ テーブル 任意の数のカテゴリを格納できます。検索は簡単です。カテゴリは、独自のテーブルで指定された追加の属性を持つことができます。他の方法の保持力と同等にするには、64 の異なるエントリが必要です。

[int サーバー_ID 4 バイト]

[int Account_ID 4 バイト]

[int 定格 2 バイト]

[bigint last_updated 8 バイト]

[int カテゴリ ID 4 バイト]

必要な合計容量: 2929.7 MB。

ここに画像の説明を入力

方法 2: SET 列 格納するカテゴリが 64 未満の場合、SET 列をビット フラグ テーブルとして機能させることができます。

[int サーバー_ID 4 バイト]

[int Account_ID 4 バイト]

【SET評価8バイト】(たぶん少ない)

[bigint last_updated 8 バイト]

必要な総容量: 45.77mb。

SET メソッド

方法 3: 複数のビット列 名前が付けられたさまざまなビット列を使用することができます。コメントを使用して、実際のアプリケーションで表示するときにカテゴリの説明を引き出すことができます。

[int サーバー_ID 4 バイト]

[int Account_ID 4 バイト]

[複数ビット定格: 8 バイト??? バイト]

[bigint last_updated 8 バイト]

必要な総容量???: 45.77MB。

ここに画像の説明を入力

4

1 に答える 1

0

各評価カテゴリに幅広い属性を適用する場合は、ブリッジ テーブル アプローチを使用します。ブリッジ テーブルは、3 つのオプションの中で最もメンテナンスしやすいオプションです。確かに、他の人にとって最も理解しやすいものです。スペースに問題がなく、テーブルが 128,000,000 エントリまで増加する可能性がない場合は、ブリッジ テーブルを使用してみてください。

64 を超えるカテゴリを必要としないことがわかっている場合、またはデータ領域の格納が重要な場合は、SET アプローチを使用します。

ここに画像の説明を入力

于 2014-03-11T17:50:31.683 に答える