Django 外键问题

2018-12-02 00:50:16 +08:00
 wuwei007

django 模型大量使用外键, 与生产项目中数据库不使用外键 是否想违背了?

1626 次点击
所在节点    问与答
3 条回复
di94sh
2018-12-02 01:18:47 +08:00
1. django model ForeignKey 字段中可以指定 `db_constraint=False` 那么在使用 Django migration 的时候就不会在数据库中生成外键.
2. 模型与数据库是完全分离的, ForeignKey 的作用是获取关联的对象时, 自动帮你构造查询语句, 查询, 并给你返回查询的对象, 与数据库中的外键性质是不一样的, 数据库中的外键是保证数据的完整性. 比如说 你够贱了一对多关系, 在有多的一方的前提下, 是不能删除一的. 没有外键就没有这个限制.
KgM4gLtF0shViDH3
2018-12-02 09:00:38 +08:00
@di94sh #1 多谢
wd
2018-12-02 15:09:56 +08:00
数据库里面不用的话,后续可能会导致你的 model 和 db 内数据不一致的情况,查出来的数据可能会不对。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/513454

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX