首頁 >資料庫 >mysql教程 >如何用唯一的、短的、整數 ID 取代 Django 的自動遞增主鍵?

如何用唯一的、短的、整數 ID 取代 Django 的自動遞增主鍵?

DDD
DDD原創
2024-12-03 16:51:10803瀏覽

How Can I Replace Django's Auto-Incrementing Primary Key with a Unique, Short, Integer ID?

用唯一整數替換Django 的主鍵

問題概述

在Django 中,預設主鍵是一個自增正整數,貫穿始終

在Django 中,預設主鍵是一個自增正整數,貫穿始終
    在Django 中,預設主鍵是一個自增正整數,貫穿始終
  • 在Django 中,預設主鍵是一個自增正整數,貫穿始終
  • 在Django 中,預設主鍵是一個自增正整數,貫穿始終
  • 整數資料類型
  • 避免每次讀取/寫入/比較時進行雜湊/取消雜湊
  • 記錄插入時進行一次性雜湊
特定範圍內的唯一雜湊值表

短網址的最小長度

    建議的解
  • 受本文啟發的Instagram方法滿足這些要求。生成的 ID 包含:
基於時間的組件的 41 位

隨機選擇的 23 位

代碼實現

START_TIME = <unix timestamp>

def make_id():
    t = int(time.time()*1000) - START_TIME
    u = random.SystemRandom().getrandbits(23)
    id = (t << 23) | u
    return id

def reverse_id(id):
    t = id >> 23
    return t + START_TIME

身分證世代:

class MyClass(models.Model):
    id = models.BigIntegerField(default=fields.make_id, primary_key=True)
型號:

以上是如何用唯一的、短的、整數 ID 取代 Django 的自動遞增主鍵?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn