2011-01-05 9 views
0

私は会社のリストラプロジェクトを追跡するDjangoプロジェクトを持っています。ここでは非常に単純なモデルです:Django - 複数の場所にまたがるテーブルを分割する必要があります

class Project(models.Model): 
    code = models.CharField(max_length=30) 
    description = models.CharField(max_length=60) 

class Employee(models.Model): 
    project = models.ForeignKey(Project) 
    employee_id = models.IntegerField() 
    country_code = models.CharField(max_length=3) 
    severance = models.IntegerField() 

により、一部の欧州諸国の規制に、私はその国の外箱に座っているデータベースで、従業員レベルの退職情報を保持することはできませんよ。

Djangoでは、プロジェクト内の他のものに影響を与えない方法でEmployee属性(つまりcountry_code)に基づいて複数のデータベースに分割されたEmployeeテーブルを作成する必要性をどのように管理しますか(ビュー、管理者)?

おかげで、

マイク

+1

OT: "私は、その国の外のボックスに置かれたデータベースに従業員レベルの退職情報を保存することはできません。これはそこで最もばかげた規制の1つでなければなりません。世界のどこにいても、ボックスのセキュリティに注意を払わないでください。 –

+0

さて、彼らはまた、ボックスのセキュリティに注意を払う。それは、彼らが個人的な機密情報の輸出であるとして米国に保管されていることを見ているだけです。私もそれに夢中ではありませんが、議会は悪化することが知られています。 – MikeRand

答えて

2

あなたがDjangoのmultiple database supportをチェックアウトする場合があります - それはあなたのusing文を作るために、いくつかのハッキングがかかるかもしれませんが、あなたは、COUNTRY_CODE属性に基づいて、データベース内の従業員の情報を保つことができますあなたが照会しているときに正しく動作します。 Employeeを照会するときに、country_codeと作業していることを知っていますか?

+0

私はcountry_codeで質問するつもりはないと思います。人々が(将来の)アプリケーションを使用して再構成プロジェクトに人を加えるとき、ORM層はレコードをどこに置くべきかを知る必要がある。しかし、私はcountry_codeでクエリを実行する必要があるかもしれません...それは今の私たちの使用例ではありません。 – MikeRand

+0

その場合は、複数のデータベースを使用していて(おそらく)うまくいくと思います。モデルが保存されるときに適切なデータベースに物を置くためのコードを書く必要があります。 – girasquid

+0

私はマルチDBのサポートを見ました。私はそれが私が行く必要がある場所に私を得るだろうと思う。 – MikeRand

関連する問題