Attualmente sto costruendo un progetto che implica molta intelligenza collettiva. Ogni utente che visita il sito Web crea un profilo univoco e i suoi dati vengono successivamente utilizzati per calcolare le corrispondenze migliori per se stessi e gli altri utenti.Campo di incremento automatico di Django BigInteger come chiave primaria?
Per impostazione predefinita, Django crea un campo INT (11) id
per gestire i modelli chiavi primarie. Sono preoccupato per il fatto che questo sia stato sorvolato molto rapidamente (ad esempio, i dispositivi 2.4b che visitano la pagina senza l'impostazione preliminare dei cookie). Come posso cambiarlo per essere rappresentato come BIGINT in MySQL e long() all'interno di Django stesso?
ho trovato che potevo fare quanto segue (http://docs.djangoproject.com/en/dev/ref/models/fields/#bigintegerfield):
class MyProfile(models.Model):
id = BigIntegerField(primary_key=True)
Ma c'è un modo per rendere AutoIncrement, come al solito id
campi? Inoltre, posso renderlo non firmato in modo da ottenere più spazio da riempire?
Grazie!
credo che questo non avrebbe aiutato, come Django sarebbe ancora messo id in int normale, che è ancora troppo piccolo. – letoosh
Niente affatto, il punto qui è come l'ID è memorizzato sul database. (Lungo) Il tipo intero in python ha una precisione 'illimitata'. Puoi anche verificare come BigIntegerField è impiantato in Django 1.2 - eredita direttamente IntegreField, senza modificare il tipo interno per memorizzare il valore (che è int in questo caso) – dzida
Hai ragione, mio male ... – letoosh