2

同じデータベース スキーマの異なるデータ データベースがあり (これも 1 つのデータベース: 同じ構造/スキーマの異なるテーブル)、それらのデータベースを他のすべてのアプリでデータ バックエンドとして使用したいと考えています。

たとえば、データベース名: database1

class tableA(models.Model):
    a = models.CharField()
    b = models.CharField()
    class Meta:
        db_table = 'tableA'

class tableB(models.Model):
    c = models.CharField()
    d = models.CharField()
    class Meta:
        db_table = 'tableB'

class tableC(models.Model):
    c = models.CharField()
    d = models.CharField()
    class Meta:
        db_table = 'tableC'

データベース名: database2

class tableA(models.Model):
    a = models.CharField()
    b = models.CharField()
    class Meta:
        db_table = 'tableA'

class tableB(models.Model):
    c = models.CharField()
    d = models.CharField()
    class Meta:
        db_table = 'tableB'

class tableC(models.Model):
    c = models.CharField()
    d = models.CharField()
    class Meta:
        db_table = 'tableC'

ここでは、database1 と database2 が同じスキーマを持っていることがわかります。また、両方のデータベースで、同じスキーマを持つテーブル: tableB と tableC があります。つまり、すべての地域で 1 つの大きなデータベースを使用するのではなく、地域ごとに同じ構造の個別のデータベースが作成されます。1 つのデータベースには約 15 個のテーブルがあり、15 個のうち 12 個のテーブルが同じスキーマにあり、毎日のデータが格納されています。

djangoでこれをどのように設計すればよいか教えてください。複数のモデル ファイル (データベースごとに 1 つ) を含む 1 つのアプリを作成し、ルーターを使用して別のデータベースに転送する必要がありますか? どのように?または、データベースごとに異なるアプリを作成しますか? どちらの場合も、すべてのモデル ファイルが同じ構造を持つため、多くのコードの冗長性があることがわかります。

4

0 に答える 0