我最近参加了一个项目,其中我们有两个几乎相同的应用程序。我们正在使用 Django 1.4 和 Postgresql 8.4。两种型号都具有以下特点:
class Author(models.Model):
person = models.ForeignKey(Person)
book = models.ForeignKey(Book)
order = models.PositiveIntegerField(blank=True,null=True)
institute = models.ForeignKey(Institution,blank=True, null=True)
rank = models.ForeignKey(Rank,blank=True, null=True)
class Institution(models.Model):
name = models.CharField(max_length=200)
parent_institution = models.ForeignKey('self', blank=True, null=True)
location = models.ForeignKey(Location, blank=False, null=False)
type = models.ForeignKey(InstitutionType, blank=False, null=False)
class Person(models.Model):
first_name = models.CharField(max_length=100)
last_name = models.CharField(max_length=100)
middle_name = models.CharField(max_length=50,blank=True,null=True)
gender = models.CharField(max_length=1,choices=GENDER_TYPE,blank=True,null=True)
class InstitutionType(models.Model):
type = models.CharField(max_length=255)
有没有办法通过 SQL 或 Django 轻松合并两者?我不太确定最好的方法是什么。我唯一的问题是有很多外键引用。有没有一种好方法可以将一个应用程序表的主键更改为高于另一个应用程序(基本上从第一个表结束的地方开始重新分配第二个表中的主键)并让它们向下流动,然后最终合并两张桌子?任何形式的反馈将不胜感激。