📅  最后修改于: 2023-12-03 14:38:45.421000             🧑  作者: Mango
在 Django 中,我们通常会定义模型(Model)来描述我们所需的数据库表结构。 model 中必须至少有一个字段作为主键,用于唯一地标识每个对象。Django 支持 3 种主键:自动创建的主键、自定义主键和复合主键。
其中,“自动创建的主键”是指当我们在定义 model 时没有指定主键字段,则 Django 会自动为我们创建一个主键字段。这个主键字段会使用一个名为 id
的整数类型自动创建。这种自动生成主键字段的方式可以让我们的开发变得简单快捷,并且适用于绝大部分的场景。
然而,这种自动生成主键的方式也有它的缺点。其中之一就是如果我们通过 id
字段来访问对象,那么对象的外部标识就被暴露出去了。这样子在一些安全要求较高的场景下就可能会存在风险。
为了解决这种问题,我们可以选择使用自定义主键或复合主键等方法。但如果我们觉得自动生成的 id
字段已经能够满足我们的需求,那么可以继续使用它。不过在一些对标识敏感的应用程序中,建议使用自定义主键或复合主键来确保安全性。
需要注意的是,使用自动生成主键的方式在缺少明确需求和设计清晰的前提下,可能会给我们的应用程序带来一些意想不到的问题。因此,建议在实际开发中注意评估自动创建的主键与自定义主键的使用场景,选择适合的数据访问方式。