Django 模型 - 选择与外键?

标签 django django-models

我知道在 Django 中,ORM 不支持 MySQL 或 PostgreSQL 中的 ENUM 类型,因为这最初是一个 MySQL 扩展,不能跨其他数据库类型移植。因此,两个选项是对您的模型使用“选择”参数,或者使用外键引用。

这些方法的优缺点是什么?

对于诸如性别之类的东西,我假设您会使用“选择”,例如:

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

但是,对于诸如州名之类的东西,支持和反对使用单独的表以及该表的外键的原因是什么?
state = models.ForeignKey(AustralianState)

在什么情况下你会使用一种和另一种?

干杯,
胜利者

最佳答案

当潜在选择的数量很大时,您还应该考虑外键。这是考虑对国家或州使用 FK 的原因之一。否则,您实际上是在源代码中硬编码了大量数据。

关于Django 模型 - 选择与外键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4021096/

相关文章:

oop - 如何获取从 django 中的同一父类继承的所有实例

不允许使用Django方法(POST)

python - django 不读我的 models.py

python - 从 Django 1.6 升级到 1.9 : python manage. py 迁移失败

Django 单元测试 on_delete CASCADE

python - FieldError 在/。无法将关键字 'textField' 解析为字段

python - 将 ViewerJS 与 Django 结合使用

djangorest框架m2m更新方法

django-models - 在 Wagtail 中设置默认片段的最佳方法是什么

Django Userena 扩展