In Django ist der Standard-Primärschlüssel eine automatisch inkrementierte positive Ganzzahl, die durchgehend verwendet wird die Anwendung. Dadurch wird jedoch die Anzahl der Entitäten in der Datenbank öffentlich bekannt gegeben, sodass eine Alternative erforderlich ist. In diesem Artikel werden bestimmte Anforderungen an einen verschleierten Primärschlüssel behandelt:
Die von diesem Artikel inspirierte Methode von Instagram erfüllt diese Anforderungen. Die generierte ID besteht aus:
ID Generation:
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
Modell:
class MyClass(models.Model): id = models.BigIntegerField(default=fields.make_id, primary_key=True)
Das obige ist der detaillierte Inhalt vonWie kann ich den automatisch inkrementierenden Primärschlüssel von Django durch eine eindeutige, kurze Ganzzahl-ID ersetzen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!