我正在將一箇舊的應用程序從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之前是否有處理此問題的好方法?