psql:ForeignKey约束名称

时间:2017-12-11 16:00:40

标签: postgresql django-models foreign-keys

我正在使用django和postgresql。在查看psql以查看数据库和表模式时,我注意到外键约束被命名为modelname__field_id_hexnum_fk_basemodel_field_id的大多数时候,但在某些情况下,它是一个散列,例如D19cb71bc44206c3464da32ad943c8f8。为什么会这样?是因为约束名称的长度还是其他一些因素造成的?

1 个答案:

答案 0 :(得分:0)

可能与多对多关系中介连接表的逻辑相同?

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

  

在幕后,Django创建了一个中间连接表   代表多对多的关系。默认情况下,此表名称   是使用多对多字段的名称和名称生成的   包含它的模型的表。由于某些数据库没有   支持表格名称超过一定长度,这些表名称将是   自动截断为64个字符,唯一性哈希将是   使用