Модель Django - выбор по сравнению с внешним ключом?

Я понимаю, что в Django ORM не поддерживает тип ENUM в MySQL или PostgreSQL, поскольку это изначально было расширением MySQL и не переносилось на другие типы БД. Итак, есть два варианта: использовать аргумент «выбор» для вашей модели или использовать ссылку на внешний ключ.

Каковы плюсы и минусы этих подходов?

Я полагаю, что для чего-то вроде пола вы бы использовали " choices ", например:

GENDER_CHOICES = (
    ('M', 'Male'),
    ('F', 'Female'),
)
...
gender = models.CharField(max_length=1, choices=GENDER_CHOICES)

Однако, для чего-то вроде имен состояний, каковы причины и против использования отдельной таблицы и внешних ключей для этой таблицы?

state = models.ForeignKey(AustralianState)

При каких обстоятельствах вы бы использовали одну вместо другой?

Ура, поскольку изначально это было расширение MySQL, а не переносимое на другие типы БД. Итак, есть два варианта: использовать аргумент «выбор» для вашей модели или использовать ссылку на внешний ключ.

Каковы плюсы и минусы этих подходов?

Я полагаю, что для чего-то вроде пола вы бы использовали " choices ", например:

GENDER_CHOICES = (
    ('M', 'Male'),
    ('F', 'Female'),
)
...
gender = models.CharField(max_length=1, choices=GENDER_CHOICES)

Однако, для чего-то вроде имен состояний, каковы причины и против использования отдельной таблицы и внешних ключей для этой таблицы?

state = models.ForeignKey(AustralianState)

При каких обстоятельствах вы бы использовали одну вместо другой?

Ура, поскольку изначально это было расширение MySQL, а не переносимое на другие типы БД. Итак, есть два варианта: использовать аргумент «выбор» для вашей модели или использовать ссылку на внешний ключ.

Каковы плюсы и минусы этих подходов?

Я полагаю, что для чего-то вроде пола вы бы использовали " choices ", например:

GENDER_CHOICES = (
    ('M', 'Male'),
    ('F', 'Female'),
)
...
gender = models.CharField(max_length=1, choices=GENDER_CHOICES)

Однако, для чего-то вроде имен состояний, каковы причины и против использования отдельной таблицы и внешних ключей для этой таблицы?

state = models.ForeignKey(AustralianState)

При каких обстоятельствах вы бы использовали одну вместо другой?

Ура, Victor

21
задан victorhooi 26 October 2010 в 06:06
поделиться