2017-12-11 13 views
0

私はdjangoとpostgresqlを使っています。 psqlを見てデータベースとテーブルのスキーマを見ているうちに、外来キーの制約はほとんどの場合、modelname__field_id_hexnum_fk_basemodel_field_idという名前になっていますが、場合によってはハッシュです。 D19cb71bc44206c3464da32ad943c8f8。なぜこれが起こるのですか?制約名の長さやその他の要因が原因ですか?舞台裏psql:ForeignKey制約名

答えて

0

たぶん同じロジックとして、多対多の関係の仲介がテーブルに参加?...

https://docs.djangoproject.com/en/2.0/ref/models/fields/

、Djangoは仲介が にテーブルを結合作成する - 多くの多くの-表します関係。既定では、このテーブル名 は、多対多フィールドの名前とそれを含むモデルのテーブル の名前を使用して生成されます。一部のデータベースでは特定の長さを超えるテーブル名をサポートしないため、これらのテーブル名は自動的に64文字に切り捨てられ、一意性ハッシュは が使用されます( )。