在我的应用程序中,我将需要一个设置,其中每个用户在数据库中都有一些派生/计算的信息。它应该是最多 100 个不同的数据集,每个用户大约 100 行 (100x100)。这些行需要大约每三个月刷新一次。因此,假设有 10000 个用户,如果每个人都使用所有一百个位置,那么每 3 个月将重新创建 1 亿行。据我所知,Postgre int 字段是 2147483647,即 2100M+。那么,使用此设置,我会在大约 5 年内用完 id/pk 吗?
我应该重新考虑我的设置还是有解决办法?
我使用的是 Python 2.7.6,PostgreSQL 服务器是 9.3 和 Django 1.8。
最佳答案
我的第一直觉是使用 BigAutoField
,但这在 Django 1.8 中不存在。在任何情况下,您都可以像这样使用它:
from django.db import models
class CustomIDModel(models.Model):
id = models.BigAutoField(primary_key=True)
class SomeModel(CustomIDModel):
some_field = model.BooleanField()
# More
Django 1.8 确实有 UUIDField
, 然而。这更大,但应该可以解决问题。
import uuid
from django.db import models
class CustomIDModel(models.Model):
id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
class SomeModel(CustomIDModel):
some_field = model.BooleanField()
# More
关于python - Django+PostgreSql : Can I run out of id/pk?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46946697/