0

問題がありますが、django プロジェクトを整理する最善の方法がわかりません。2 種類のトーナメントで同じモデルを使用しています (これは一例です)。

  • トーナメント(タイプノックアウトまたはリーグ)
  • マッチ

トーナメントがノックアウトの場合は、最初のラウンドのすべての試合を作成する必要がありますが、リーグの場合は、すべてのリーグのすべての試合を作成する必要があります。

ノックアウトの管理ページはノックアウト ツリーであり、リーグは結果と分類のテーブルである必要があります。

コードを整理するにはどうすればよいですか?

現在、ノックアウト アプリケーションとリーグ アプリケーションがあり、ユーザーが「管理者」を選択すると、トーナメント タイプに応じてアプリケーションにリダイレクトされます。

別の問題は、ユーザーがトーナメントを作成または変更するとき、ユーザーがチームを追加または削除するときなどに何らかのプロセスを実行する必要があることですが、同じ問題です: タイプがノックアウトの場合、X プロセスを実行する必要がありますが、リーグ実行 Y の場合プロセス。

新しいタイプのトーナメントに向けたスケーラブルなソリューションが必要ですが、どのアーキテクチャ/組織が最適かわかりません。

4

1 に答える 1

0

Django では、モデル クラスをサブクラス化できますが、私はおそらく物事を単純でばかげたものにしておくでしょう:

  • 大会用モデルを製作。そのフィールドの 1 つで、トーナメントの種類が決まります。
  • マッチ用のモデルを作成する

トーナメント クラスには、関連する試合を作成するためのコードが含まれます。

現時点では、スケーラビリティについてはあまり心配しません。抱えている問題を解決します。6 種類以上のトーナメントがあり、トーナメント クラスが複雑になった場合は、ロジックを分割する方法も考えやすくなります。

于 2013-09-02T10:22:37.697 に答える