Я в настоящее время использую Django 1.5.1 и используя пользовательский пользователь, как описано в официальной документации. Я понял, что все хранится под одним столом, auth_user
.Пользовательский пользователь Django пользовательский пользователь VS
Вопрос в том, почему лучше иметь все в одной большой таблице, вместо того, чтобы иметь 2 таблицы, как раньше, до 1,5, используя таблицу user_profile
для всех дополнительных данных? Это кажется более умным, как раньше, если мы хотим добавить 20 новых полей для информации о пользователе, странно иметь все в auth_user
.
В моем случае, на данный момент у меня есть class MyUser(AbstractUser)
с 2 дополнительные поля gender
и date_of_birth
, так что все хорошо с этим, но сейчас я хотел бы иметь много другой информации (текстовые поля), как «любимые фильмы», «любимый книги "," хобби "," 5 вещей, которые я не мог бы жить без "и т. д. и т. д., чтобы иметь больше информации о моем пользователе. Поэтому мне было просто интересно, следует ли мне поставить класс под MyUser
, или мне нужно определить номер UserProfile
? И почему?
Спасибо!
Хорошо, спасибо за объяснение. На данный момент я использую имя пользователя как основное обязательное поле, а не адрес электронной почты. Но для входа в систему я создал пользовательский EmailBackend, чтобы проверить как имя пользователя, так и адрес электронной почты, чтобы иметь возможность использовать оба при аутентификации. Но я ясно понимаю, почему этот пользовательский пользователь помогает здесь, это действительно приятно. – Dachmt
Что касается того, что я должен использовать, это в основном социальное приложение, в котором люди просматривают профили других людей, поэтому эта информация будет отображаться более чем часто, довольно интенсивно. Вы все еще думаете, что лучше хранить все под пользовательской таблицей? – Dachmt
@ Dachmt Ну, например, в таком месте, как здесь, я бы сохранил их в отдельной таблице. В вашей ситуации это зависит. Могут ли «любимые фильмы» быть денормализированы в каждой таблице, чтобы избежать дублирования? Включит ли это участие пользователей в рейтинге своих фильмов? Тогда, вероятно, да. Но это зависит от функции каждого из этих атрибутов. Если бы у меня был несколько определенный набор полуинформационных атрибутов, которые не выходят за рамки 20-30, я бы поставил их в одну и ту же таблицу. – rantanplan