1

誰が自分のユーザー情報を表示できるかをユーザーが決定できるようにした場合、その情報を保存してアクセスするための最良の方法は何ですか?

次のいずれかの方法で好みを設定します。

  • ユーザーベース (特定のユーザーを選択 - 例: ブロック: "Munch"、"Dummy")
  • チェックボックス ベース (1 つまたは複数のユーザー グループを選択します。つまり、「マイ フレンド」、「ネットワーク内の誰でも」)
  • ラジオ ボタン ベース (ユーザーのグループを 1 つだけ選択します。つまり、「すべてのユーザー」)

私の現在の考えでは、情報は表示されているユーザーに関連しており、サイト内をクリックしているユーザーには関連していないため、これらのオプションをデータベースに保存し、結果の特定の組み合わせに基づいて特定のクエリを実行する必要があります。 .

唯一の問題は、一見膨大な数の異なるクエリが存在する可能性があることです。

  • 7 つのチェックボックスには、最大 128 の異なる組み合わせ (2^7) を含めることができます。
  • 128 の組み合わせ = 128 の異なる最適化されたクエリ

これは、クエリの作成に費やされる時間、または各ページ ビューのクエリの量 (実行する別のクエリを取得するためのクエリ... blech!) のいずれにおいても効率的ではないようです。

そして、これは以前に行われたと確信しているため、何かを見落としているに違いないと感じています. PHP/MySQL を使用してこれを行うより良い方法はありますか?

4

2 に答える 2

1

結果を「ビューできない」テーブルに事前計算します。つまり、何らかの形式の usera が userb を (直接またはグループに属しているために) ブロックする場合、テーブルはそれを示すレコードを取得します。それは、読むのではなく書くことで重労働をするのは昔からのことです。

于 2010-01-21T23:36:53.903 に答える
0

最良のオプションはラジオボタンベースのものだと思います。いつも知っているユーザーのリストを調べるのも大変なことです。チェックボックスの1つもそれほど悪くは聞こえません。

上手。この例を見てください。ラジオボタングループで「Everyone」を選択します。なぜ誰かがそれを友達から隠したいのでしょうか。

ラジオボタンは、ユーザーにとってもあなたにとっても最も簡単な方法です。

よろしく、ラマ

于 2010-01-21T23:18:17.287 に答える