私は事実を知っています、私はDjangoのORMを使用する場合、すべてのテーブルは、主キー列を持っている必要があります。あなたは(のは、作家や書籍、それらを呼びましょう)テーブルにリンクmany_to_manyテーブルを持っている場合はどういうわけか、あなたのようなものになるだろう:MySQLテーブルのdjango(python)の冗長プライマリキー列を避けることはできますか?
id author_id book_id
1 1 1
2 1 2
3 2 3
etc.
を、私は列「ID」を避けるために提案されている書籍に遭遇したと代わりに複合主キーを作成します。これはdjangoでうまくいくのでしょうか?
私は/ againstの引数に興味があります。記事はどこですか? – Sonny
リンクテーブルについては、直接アクセスする必要はありません.DjangoのManyToManyFieldを使用して、 'through'パラメータを使用したリンクテーブル。参照:https://docs.djangoproject.com/en/dev/topics/db/models/#many-to-many-relatイオンシップ –
@ソニー:私は* article *と* book *を書いた。そのタイトルは、** SQL Antipatterns:** Bill Karwin **によって書かれたデータベースプログラミングの落とし穴を回避することです。彼は、(上記の例では) 'author_id'と' book_id'の上に複合ユニーク制約を置かなければならないと言います。これを行うと、複合キーは 'id'カラムと同じプロパティを持ちます。だから冗長になる。通路は長く、そこにはもっと多くの議論がありますが、私はそれが間違っていなければ、それがその本質であると思います。 :-) – Aufwind