Django 的 models 里的外键之一对一,一对多,多对一,多对多关系

本文通过教师与学生的关系为例,深入浅出地介绍了数据库中一对多、多对多及一对一这三种基本关系类型,并通过实际场景解释了每种关系的具体含义。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

如何简单地理解这些对应关系呢?
一对多多对一(ForeignKey)
拿最通俗易懂的教师和学生做例子,一个班级里有一个班主任,一个班主任管理整个班的学生,那么这个班主任与全班学生之间的关系就是一对多的关系.同样的例子,将主语换一下,那么整个班的学生与这个班主任的关系是多对一的关系.
通过这个班主任,可以查询到他教的所有学生(这里假设一个班主任只教一个班),而通过任何一个学生,能查找到他的班主任信息.
多对多(ManyToManyField)
就是科目与学生之间的关系,同一门学科被全班同学学习,任何一个同学学习多门课程.即通过任何一门科目可以查找到全班同学的信息,而通过任何一个同学,也能查找到所有学科信息.
一对一(OneToOneField)
就像独生子女.你只有一个爹,你爹也只有你一个儿子.
具体实例暂时没有.先做个简单记录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值