0

このアーキテクチャを実装する方法を決定しようとしています。ベースの Django パッケージがあります。これを BaseApp と呼びましょう。私は、他の人が使用するためのツールとして、配布用にこれを開発してきました。BaseApp は、ほとんどの場合、いくつかのビューの動作といくつかの基本モデルを定義します。開発者は BaseApp をインストールしてから別のアプリを作成できます。それを NeatThing と呼びましょう。これは、いくつかのモデルとテンプレートを定義するだけで済み、残りは BaseApp が行います。わずかな労力で、Neat を実行するミニ アプリケーションを作成できます。もの。x 100 を繰り返すと、100 人の異なる開発者が 100 の異なる Neat Things を実行します。そして、それらはすべて、別々の環境などで別々のサーバーとして機能します。

それを利用して、BaseApp の 1 つのバージョン、ユーザーの 1 つのデータベース、および 100 の異なる Neato-Whiz-Bang アプリケーションすべてを提供し、それらを 1 つのドメインで一緒に提供して、ユーザーがすべて同じ場所に来るようにしたいと考えています。

どうすればそれを行うことができますか:

  1. 1 つの URL が 100 の異なるアプリケーションの 1 つを指しています (私が設定した方法でプログラムによって)
  2. 100 の異なるアプリケーションが互いに分離されていることを確認します (相互にまったく対話できません)。
  3. ユーザーがアプリケーション内のモデルに関連付けられるように、各アプリケーションに (制限付きの) ユーザー データベースへのアクセス権を付与します (Django のマルチデータベース サポートは認識していますが、各アプリケーションにアクセス権を付与しながら 1 つのユーザー データベースを保護するにはどうすればよいでしょうか?)

高レベルの実装アプローチの観点としてこれを求めています。つまり、ここからどの方向に行くのですか?

4

1 に答える 1

1

あなたが説明していることは、postgresql がschemasで達成しようとしていることによく似ています。djangoでのこのアプローチの優れた実装については、django-tenant-schemasを参照してください。免責事項: 私はそのプロジェクトの貢献者です。

于 2013-09-19T17:15:57.410 に答える