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