1

既存のデータベース構造をDjangoモデルにマッピングしています。私は多対多の構造を持っており、関連テーブルは自然キーです。

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);
4

1 に答える 1

1

Django(1.1まで)では、必要な複合主キーが使用できるとは思いません。

参照:http ://code.djangoproject.com/ticket/373

したがって、1.2(2010年3月?)で上記のチケットの修正が実装されていない限り、データベーステーブルを変更する必要があります。

于 2009-10-22T15:09:59.547 に答える