В настоящее время я строил проект, который включает в себя много коллективного интеллекта. Каждый пользователь, посещающий веб-сайт, получает уникальный профиль, и их данные позже используются для расчета наилучших совпадений для самих себя и других пользователей.Поле автоинкремента Django BigInteger в качестве первичного ключа?
По умолчанию Django создает поле INT (11) id
для обработки первичных ключей моделей. Я обеспокоен тем, что это очень быстро переполнено (то есть ~ 2.4b устройств, посещающих страницу без предварительной настройки cookie). Как я могу изменить его, чтобы быть представленным как BIGINT в MySQL и long() внутри самого Django?
Я нашел, что я мог бы сделать следующее (http://docs.djangoproject.com/en/dev/ref/models/fields/#bigintegerfield):
class MyProfile(models.Model):
id = BigIntegerField(primary_key=True)
Но есть способ сделать это Autoincrement, как обычные id
полей? Кроме того, могу ли я сделать это без знака, чтобы получить больше места для заполнения?
Спасибо!
Я думаю, что это не помогло бы, Django будет по-прежнему ставить идентификаторы в нормальный междунар, который еще слишком мал. – letoosh
Совсем нет смысла здесь в том, как идентификатор хранится в базе данных. (Long) целочисленный тип в python имеет «неограниченную» точность. Вы также можете проверить, как BigIntegerField внедряется в Django 1.2 - он наследует непосредственно IntegreField, не меняя внутренний тип, чтобы сохранить значение (которое в этом случае является int) – dzida
Вы правы, мой плохой ... – letoosh