2017-01-03 8 views
0

アプリを開発しているときに、多少の関連性がある多くのモデルを書き留めて書くのが簡単なことがあります。次に、問題はどのようにすべてのモデルを与えられたウェブサイトをレイアウトするかです。あなたは次のモデルを持っていると言う:Djangoサイトのアーキテクチャ

models: M1, M2, ..., M60 

あなたは、あなたがアプリケーションにそれらを分割することができます実現するために来る:

apps: AP1, AP2, ..., AP12 

その後、しばらくした後、あなたは異なるデータベースで、さまざまなプロジェクトを持って実現するかもしれません、 SEMAを持っている方がよい場合など、ビジネス・ロジック、観客をターゲットに、(例えば、1つのサイトの下に宿泊、スキー、機器のレンタル、eコマースなどすべてを持っているサイト)

projects: P1, P2, P3 

質問です1つのプロジェクト内の関連性のないアプリや別のプロジェクトのグループ関連アプリ

Site 
| 
P1 - P2 - P3 
| ... 
---------------- 
| | | | 
AP1 AP2 AP3 AP4 
| ... 
--------------------- 
| | | | | 
M1 M2 M3 M4 M5 

OR:

Site 
| 
Solo_Project 
| 
---------------- 
| | | | 
AP1 AP2 AP3 AP4 
| ... 
--------------------- 
| | | | | 
M1 M2 M3 M4 M5 

かつての場合は、どのように1は、settings.pyは、通常、(データベースルーティングの世話をROOT_URLCONF、他のすべての設定を指定するメタsettings.pyを持つべきですなど)

Djangoのドキュメント以外では、私はDjango tips: layout out an applicationの有用な(まだ不十分な)読みを見つけました。

+1

プロジェクトのアーキテクチャは、プロジェクトを管理しやすくするためのツールです。最適な方法は、プロジェクトとチームのワークフローと環境設定によって異なります。あなたのプロジェクトや組織を詳しく見ていない限り、それは完全に意見に基づくものではないとは言いません。 – knbk

答えて

0

非常に主観的です。

私のルールは、他の部分とは独立して使用できる一連の機能を提供すれば、それを別のアプリケーションに置くということです。

私の以前のプロジェクトの1つに大きなアプリが1つありました(プラス別のアプリとして追加したショッピングカートタイプの機能もあります)。私は主なアプリケーションを分割することを考えましたが、多くのクエリとビューがすべてのテーブルを使用していましたので、最終的には、機能を明確に区別することなく、複数のアプリケーションに分割するのではなく、

関連する問題