今日は、Django に関する設計/アーキテクチャに関する質問があります。
私は、地理データ (州、町など) を個別に必要とする複数の Web サイト (同じサーバーでホストされている) で作業しています。各プロジェクトにはアプリが含まれ、各アプリにはForeignKey
町または州のフィールドを持つモデルが含まれる場合があります。
繰り返しませんが、これらの町や州を保存するデータベースを構築し、それを Django プロジェクトで使用するつもりはありません。
Django は、同じプロジェクトで複数のデータベースを使用する簡単な方法を提供します。settings.py
ファイル内でデータベースを宣言し、ルーター クラスを作成して読み書きを保持します。しかし、そのように、select_related
次のようなステートメントを使用することは不可能です:
job = get_object_or_404(Jobs.objects.select_related('state__town'), user=user)
この動作は私にとって自然なことです (データベース間の結合を最初から行うことは不可能です)...
私の質問:
- dblinksの導入を検討するのは良い考えですか(私はそうは思いません...)、Django はそれを処理できますか (この部分のドキュメントは見つかりませんでした)?
- この状況に直面した場合、どのように進めますか?
手っ取り早い解決策は、各プロジェクト データベースにすべての地理データ (町、州など) をインポートすることですが、DRY ではありません :( :
python manage.py loaddata geo.json
別の解決策は、他のプロジェクトにデータを「提供」できる(方法はわかりません)別の「ジオ」アプリを構築することです...実際、私はGeoDjangoを試しましたが、それは本当に複雑なようです。おそらく私の質問には答えないでしょう!
回答ありがとうございます。