0

djangoモデルのテーブル固有のデータをどこに保存しますか?

これが私がフォーラムを作っているシナリオです。各スレッドには、次の 2 種類の訪問者がいます。

  1. 総訪問者数
  2. 現在の訪問者

私のモデルは次のように設計されています

  1. カテゴリ モデル (サブカテゴリが含まれます)
  2. サブカテゴリ モデル (サブカテゴリ、カテゴリへの外部キー ポイントが含まれます)
  3. スレッド モデル (個々のスレッド、サブカテゴリへの外部キー ポイントが含まれます)
  4. 投稿モデル (個々の投稿/メッセージ、スレッドへの外部キー ポイントが含まれます)

今、私はあらゆるレベルで訪問者を迎えます。別のスレッド/サブカテゴリ/カテゴリにアクセスするユーザー。ノーを捉えたい。訪問者の数。

これらの種類のデータが django モデルのどこに適合するかを誰かに提案できますか?

4

1 に答える 1

1

SQL データベースでは、(たとえば) スレッド テーブルとユーザー テーブルへの参照を保持する追加のテーブルを作成するのが最も簡単です。(たとえば) ThreadVisitors と呼びます。

ユーザーがスレッドにアクセスするたびに、そのユーザーとスレッドのテーブルにエントリを作成します ((thread, user)ペアに一意の制約を追加できます)。そのようにして、特定のスレッドのすべての訪問者を取得することは、(特定のスレッドに対して) countクエリを実行するのと同じくらい簡単です。ここではいくつかのインデックスが役立ちます。パフォーマンスが問題になる場合は、countクエリをキャッシュする必要があります。

おそらく各モデルごとにそのようなテーブルが必要になります。

于 2013-07-11T22:59:02.403 に答える