如何确保Django模型中外键在数据库中正确实现?
- 内容介绍
- 文章标签
- 相关推荐
本文共计778个文字,预计阅读时间需要4分钟。
在模型字段参数中添加`db_constraint=False`即可,数据库中无需外键关系,代码中可按常规外键方式使用。例如:
pythonclass User(models.Model): name=models.CharField(max_length=255) room=models.ForeignKey(Room, on_delete=models.CASCADE, db_constraint=False)
在外键字段的参数中添加db_constraint=False即可,数据库中没有外键关系,代码中依然可以按照正常外键方式使用。
例如:
class User(models.Model): name = models.CharField(max_length=255) room = models.ForeignKey(Room, db_constraint=False) class Room(models.Model): status = models.IntegerField(default=1)
补充知识:Django不通过外键查询多对多的数据,数据库表设计不使用外键
终于解决了 如何没有通过外键查询多对多的数据,多对一数据
意义: 使用外键,高并发的程序中会产生锁表,影响性能。
本文共计778个文字,预计阅读时间需要4分钟。
在模型字段参数中添加`db_constraint=False`即可,数据库中无需外键关系,代码中可按常规外键方式使用。例如:
pythonclass User(models.Model): name=models.CharField(max_length=255) room=models.ForeignKey(Room, on_delete=models.CASCADE, db_constraint=False)
在外键字段的参数中添加db_constraint=False即可,数据库中没有外键关系,代码中依然可以按照正常外键方式使用。
例如:
class User(models.Model): name = models.CharField(max_length=255) room = models.ForeignKey(Room, db_constraint=False) class Room(models.Model): status = models.IntegerField(default=1)
补充知识:Django不通过外键查询多对多的数据,数据库表设计不使用外键
终于解决了 如何没有通过外键查询多对多的数据,多对一数据
意义: 使用外键,高并发的程序中会产生锁表,影响性能。

