1

我將現有的數據庫結構映射到Django模型中。我有一個多對多的結構,其關聯表是自然鍵控的:必須Django ManyToManyField關聯表有一個代理鍵嗎?

CREATE TABLE foo (id INTEGER PRIMARY KEY); 
CREATE TABLE bar (id INTEGER PRIMARY KEY); 
CREATE TABLE foo2bar (foo_id INTEGER REFERENCES foo(id), 
         bar_id INTEGER REFERENCES bar(id), 
         PRIMARY KEY (foo_id, bar_id) 
        ); 

有沒有辦法讓Django的ORM映射它?我必須更改foo2bar以使用代理鍵嗎?例如。

CREATE TABLE foo2bar (id INTEGER PRIMARY KEY, 
         foo_id INTEGER REFERENCES foo(id), 
         bar_id INTEGER REFERENCES bar(id) 
        ); 
CREATE UNIQUE INDEX ix_foo2bar_uniq ON foo2bar (foo_id, bar_id); 

回答

1

我不認爲Django - 只要1.1 - 允許像你想要的複合主鍵。

參見:http://code.djangoproject.com/ticket/373

所以,我要說的是,除非1.2(2010年3月?)實現上面的票一個解決方法,你將不得不修改數據庫表。

+0

同樣值得一讀:http://code.djangoproject.com/wiki/MultipleColumnPrimaryKeys – cethegeek 2009-10-22 15:14:46

+0

看起來足以讓我滿意 - 謝謝! – 2009-10-22 15:45:17

相關問題