Ich baue gerade ein Projekt, das viel kollektive Intelligenz beinhaltet. Jeder Benutzer, der die Website besucht, erstellt ein eindeutiges Profil und seine Daten werden später verwendet, um die besten Übereinstimmungen für sich selbst und andere Benutzer zu berechnen.Django BigInteger Auto-Inkrement-Feld als Primärschlüssel?
Standardmäßig erstellt Django ein Feld INT (11) id
, um die Primärschlüssel von Modellen zu verarbeiten. Ich bin besorgt, dass dies sehr schnell überflogen wird (d. H. ~ 2,4b-Geräte, die die Seite ohne vorherige Cookie-Einrichtung besuchen). Wie kann ich es ändern, um als BIGINT in MySQL und Long() in Django selbst dargestellt werden?
ich, ich könnte die folgende (http://docs.djangoproject.com/en/dev/ref/models/fields/#bigintegerfield) tun gefunden habe:
class MyProfile(models.Model):
id = BigIntegerField(primary_key=True)
Aber gibt es eine Möglichkeit, es autoincrement zu machen, wie üblich id
Felder? Kann ich es auch ohne Vorzeichen machen, damit ich mehr Platz zum Ausfüllen habe?
Danke!
ich denke, das würde nicht helfen, da Django noch ids in normalen int setzen würde, die noch zu klein ist. – letoosh
Überhaupt nicht der Punkt hier ist, wie ID in der Datenbank gespeichert ist. (Long) Integer-Typ in Python hat 'unbegrenzte' Genauigkeit. Sie können auch überprüfen, wie BigIntegerField in Django 1.2 implemented ist - es erbt direkt IntegreField, ohne den internen Typ zu ändern, um den Wert zu speichern (was in diesem Fall int ist) – dzida
Sie haben Recht, mein ... – letoosh