当前位置: 首页 > 面试题库 >

Django BigInteger自动递增字段作为主键?

方宏富
2023-03-14
问题内容

我目前正在建立一个涉及大量集体智慧的项目。每个访问该网站的用户都将创建一个唯一的配置文件,然后将他们的数据用于为自己和其他用户计算最佳匹配。

默认情况下,Django创建一个INT(11)id字段来处理模型的主键。我担心这会很快溢出(例如,约2.4b个设备在未事先设置Cookie的情况下访问该页面)。如何在MySQL中将其更改为BIGINT并在Django自身中将long()表示为?

我发现我可以执行以下操作(http://docs.djangoproject.com/en/dev/ref/models/fields/#bigintegerfield):

class MyProfile(models.Model):
    id = BigIntegerField(primary_key=True)

但是,有没有办法像通常的id字段一样使它自动递增?另外,我可以将其设为未签名状态,以便获得更多的空间来填充吗?

谢谢!


问题答案:

如果您使用的是Django 1.10,则Django现在内置了BigAutoField:

https://docs.djangoproject.com/zh/1.10/ref/models/fields/#bigautofield



 类似资料:
  • 问题内容: 这可能在MySql中吗?我可以有一个以字母为前缀的自动递增主键,例如R1234,R1235,R1236 …等等吗? 问题答案: 您可以做的是将密钥存储为两列。一个char前缀和一个auto-incrementing int,它们都被分组为主键。

  • 问题内容: 我正在尝试添加具有自动增量的主键。 我已经阅读了一些文档和其他问题-有和声明,但是不起作用。 这是我做的: 和 我怎么了 我只想将主键增加1。 问题答案: 是或多或少是一种列类型,所以说就像说,只是说: 如果您想自己创建序列,那么您想将序列中下一个值的默认值设为默认值,这意味着: 为了模拟通常的行为,您还需要使表拥有该序列: 阅读手册的“串行类型”部分可能会很有成果。 我还建议您不要对

  • 问题内容: 是否可以在MySQL中制作结合了alpha元素和数字的自动增量功能? 我有一个具有QAb99,QAb101,QAd9003等键的现有系统。最大数字部分的范围为1到9999,而字母以QA开头,范围从QAa到QAd等,最终将通过QAd9999到QAe1等。 。 在SQL或SQL外部(例如php脚本)管理生成新密钥是否更好? 谢谢。 问题答案: 我前一阵子问过。不幸的是,Mysql并没有这样

  • 问题内容: 在MySQL中,是否可以在自动递增前面附加一个字母。我的数据库中有几个表,其中一些表具有通过自动增量创建的唯一ID。我希望能够通过前面的字母来区分自动生成的数字。 这不是绝对必需的功能,但只会帮助简化小型任务。 问题答案: 不幸的是你不能那样做。至少不是在sql中。自动增量字段是整数类型,因此在其中添加字母会违反约束。 我希望这可以引导您朝正确的方向发展。

  • 我有两个表,其中主键(另一个表上的外键)在运行时自动递增(使用TOAD for mysql)。如何使用事务将数据同时插入两个表中。 这是第一个表的ddl: 第二个表的ddl: 注意:主要的挑战是从主键上获取自动递增的键值,以便在运行时插入到另一个表中。 提前谢谢。

  • 我将向一个SQL Server表中添加一行,该表的主键列是自动递增的(< code>identity)。当我以编程方式向表中插入一个新行时,有没有办法获得所添加行的键值,因为我想在另一个相关表中将它用作外键?

  • 字段自增 const flow = await this.ctx.model.Flow.findOne({ where: { art_id } }); await flow.increment('index', { by: 900 }); 字段自减 const flow = await this.ctx.model.Flow.findOne({ where: { art_id } }); awai

  • 问题内容: 您能否提供一个非常简单的SQL示例,说明如何创建一个“计数”或“订单”字段,该字段将自动递增,但在不同字段中进行每次更改后重新启动?在下表中,每次“进餐”(Meal)字段发生更改时,“订单”(Order)字段将从“ 1”重新开始。谢谢。 吃饭时间点餐 午餐10:30 午餐11:00引用2 午餐11:15 3 晚餐4:30 晚餐1晚餐4:45 晚餐2晚餐引用3 晚餐5:30引用4 问题答