同じデータベース スキーマの異なるデータ データベースがあり (これも 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 つのアプリを作成し、ルーターを使用して別のデータベースに転送する必要がありますか? どのように?または、データベースごとに異なるアプリを作成しますか? どちらの場合も、すべてのモデル ファイルが同じ構造を持つため、多くのコードの冗長性があることがわかります。