django - 在Django中使用ForeignKey有什么优点?

标签 django django-models

这是一个极其幼稚的问题。正如您所知,它来自对数据库或 Django 不太了解的人。

在 Django 中使用外键有什么优点?

也许一个例子可以帮助我更好地理解。我已经有这样的表了:

City:
    id = IntegerField() # e.g. 15
    name = CharField() # e.g. 'Rome'    
Country:
    name = CharField() e.g. 'Italy'
    capital = IntegerField() # e.g 15

我是否应该将大写更改为 ForeignKey(City),如果是,为什么?某些事情是否变得更快、更方便或更好?

谢谢!

最佳答案

外键是对数据模型的约束,可让您确保一致性。基本上,在您的示例中,如果您没有 capital 作为 CityForeignKey,它可能包含 id 一个不存在的城市!当您使用 ForeignKey 时,它会对数据库施加约束,以便您无法删除当前被其他事物引用的事物。因此,如果您尝试先删除名为 "Rome"City,然后再删除名为 "Italy"Country,那个城市作为首都,它不会允许你这样做。

使用 ForeignKey 可以确保您永远不必担心关系另一端的“东西”是否仍然存在。

关于django - 在Django中使用ForeignKey有什么优点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3910252/

相关文章:

python - Django 模型 : int() argument must be a string, 类似字节的对象或数字,而不是 'tuple'

python - 首次部署时的 Djangosyncdb

python - Django:外键链接 2 个表

python - 用于过滤空类别的上下文处理器

javascript - Google Analytics 跟踪用户类型问题

angularjs - 使用 AngularJs 发布请求时未设置 CSRF Coo​​kie - Django 后端

python - 在 dreamhost 上安装 django (帮助新手)

sql - 获取最常用的多对多字段

python - Django基于外键关系的sum(涉及3个模型)

python - 具有额外属性的多对多关系 Django 模型