Django模型用于相同的结构化数据库

时间:2014-08-26 09:34:04

标签: django django-models router multiple-databases model-inheritance

我有相同数据库模式的不同数据数据库(也在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个)并使用路由器将其指向不同的数据库吗?怎么样?或者为每个数据库创建不同的应用?在两种情况下都可以看到,由于所有模型文件具有相同的结构,因此存在大量的代码减少。

0 个答案:

没有答案