Django では、デフォルトの主キーは、全体で使用される自動インクリメントされる正の整数です。アプリケーション。ただし、これによりデータベース内のエンティティの数が公開されるため、代替手段の必要性が生じます。この記事では、難読化された主キーの特定の要件セットについて説明します。
この記事からインスピレーションを得た Instagram の方法は、次の要件を満たしています。生成される ID は以下で構成されます:
ID世代:
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)
以上がDjango の自動インクリメント主キーを一意の短い整数 ID に置き換えるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。