我正在将一个旧的应用程序从ASP.NET + MSSQL转换为Django + Postgres。现有的设计是这样的:如何解决Django模型中的循环引用?
create table foo
(id integer
, name varchar(20)
, current_status_id integer null
)
create table foo_status
(id integer
, foo_id integer
, status_date datetime
, status_description varchar(100)
)
因此,每个富具有多foo_history记录,但有一个非规范化的领域,current_status_id,这点最后的历史记录。
为了转换数据,我只是将foo.current_status_id定义为一个IntegerField,而不是一个ForeignKey,因为无论我首先加载哪个表,Postgres都会(正确)抱怨丢失的外键。
现在我已经转换了数据,我想再次获得所有外键优点,例如查询。除了从IntegerField中更改模型之前,我在执行syncdb到ForeignKey之前是否有处理此问题的好方法?