mysql表的relationship

编程入门 行业动态 更新时间:2024-10-24 20:22:35

<a href=https://www.elefans.com/category/jswz/34/1771279.html style=mysql表的relationship"/>

mysql表的relationship

数据表关联关系映射 Relationship Map

在关系型数据库中,通常不会把所有数据都放在同一张表中,这样做会额外占用内存空间,

在关系列数据库中通常用表关联来解决数据库。

用的表关联方式有三种:

一对一映射

如: 一个身份证对应一个人

一对多映射

如: 一个班级可以有多个学生

多对多映射

如: 一个学生可以报多个课程,一个课程可以有多个学生学习

一一对一映射

一对一是表示现实事物间存在的一对一的对应关系。

如:一个家庭只有一个户主,一个男人有一个妻子,一个人有一个唯一的指纹信息等

1.语法:

在关联的两个类中的任何一个类中:classA(model.Model):

...classB(model.Model):

属性= models.OneToOneField(A)

2.用法

(1)创建作家和作家妻子类

#file : xxxxxxxx/models.py

from django.db importmodelsclassAuthor(models.Model):'''作家模型类'''name= models.CharField('作家', max_length=50)classWife(models.Model):'''作家妻子模型类'''name= models.CharField("妻子", max_length=50)

author= models.OneToOneField(Author) #增加一对一属性

(2)查询

在 Wife 对象中,通过 author 属性找到对应的author对象

在 Author 对象中,通过 wife 属性找到对应的wife对象

(3)创始一对一的数据记录

from . importmodels

author1= models.Author.objects.create(name='王老师')

wife1= models.Wife.objects.create(name='王夫人', author=author1) #关联王老师

author2 = models.Author.objects.create(name='张老师') #一对一可以没有对应的数据

(4)一对一数据的相互获取

1.正向查询

直接通过关联属性查询即可

#通过 wife 找 author

from . importmodels

wife= models.Wife.objects.get(name='王夫人')print(wife.name, '的老公是', wife.author.name)

2.反向查询

通过反向引用属性查询

反向引用属性为实例对象,引用类名(小写),如作家的反向引用为作家对象.wife

当反向引用不存在时,则会触发异常

#通过 author.wif

更多推荐

mysql表的relationship

本文发布于:2024-02-12 00:51:30,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1684735.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:mysql   relationship

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!