Я понимаю, что в 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