Dalam Django, kunci utama lalai ialah integer positif yang ditambah secara automatik yang digunakan sepanjang permohonan itu. Walau bagaimanapun, ini mendedahkan secara terbuka bilangan entiti dalam pangkalan data, mendorong keperluan untuk alternatif. Artikel ini menangani satu set keperluan khusus untuk kunci utama yang dikelirukan:
Kaedah Instagram, yang diilhamkan oleh artikel ini, memenuhi keperluan ini. ID yang dijana terdiri daripada:
ID Generasi:
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
Model:
class MyClass(models.Model): id = models.BigIntegerField(default=fields.make_id, primary_key=True)
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menggantikan Kunci Utama Penambahan Automatik Django dengan ID Integer yang Unik, Pendek?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!