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 回答