当前位置: 首页 > news >正文

官方网站建设 就问磐石网络专业做网站 中介

官方网站建设 就问磐石网络专业,做网站 中介,有没有做3d衣服模型网站,专业手机网站建设多少钱使用自关联方法处理多表关系 这里通过省市区之间的关系来解释自关联的情况 在设置地址的过程中 , 不可避免的需要设置 , 省份 ,市以及区 而省市区三者之间的具有一定的关联关系 一个省份对应多个市 一个市对应多个区 如果通过设置主表从表关系则需要设置三张标分别对应省…

使用自关联方法处理多表关系

这里通过省市区之间的关系来解释自关联的情况

在设置地址的过程中 , 不可避免的需要设置 , 省份 ,市以及区

而省市区三者之间的具有一定的关联关系

一个省份对应多个市

一个市对应多个区

如果通过设置主表从表关系则需要设置三张标分别对应省市区 , 这对数据处查询造成了很大的压力

所以我们在这里使用自关联的方法使用一张表来解决上述问题

# 自关联
# id   name   -id
#  1  广东省   null
#  2  湖北省
#  3  广州市    1
#  4  天河区    3

如上述 , 广州市为广东省的一个市 , 则可以为其设置一个外键 , 外键的值与广东省即主键相同

同理天河区为广州市的一个区 , 我们也可以按上述方法进行设置

这样我们在调用查询的过程中就可以通过从键获得省市区之间的对应关系

在Django中的ORM数据库框架如何设置自关联

class Area(models.Model):name = models.CharField(max_length=20)# 自关联 : self# SET_NULL: 删除被关联的数据 , 对应链接的数据字段值会设置为 NULLparent = models.ForeignKey('self' , on_delete=models.SET_NULL , null=True,blank=True,related_name='subs')class Meta:db_table = 'areas'

在Django的模型(models)定义中,ForeignKey 是一个用于表示两个模型之间一对多关系的字段。在你给出的代码片段中,ForeignKey 被用于一个模型自身,即所谓的“自引用”或“递归”关系。让我们逐一分析该字段的各个参数:

python复制代码parent = models.ForeignKey('self', on_delete=models.SET_NULL, null=True, blank=True, related_name='subs')
  1. ‘self’
    • 这表示ForeignKey指向的是同一个模型(即该模型自身)。在数据库中,这意味着该表会有一个外键字段,该字段引用该表的另一个记录。
  2. on_delete=models.SET_NULL
    • 当被引用的对象(即父对象)被删除时,该字段的值将被设置为NULL。这是Django提供的一种处理外键对象删除时的策略。
    • 注意:为了使用SET_NULL,相应的字段(在这个例子中是parent)必须允许NULL值,这就是为什么null=True也被设置的原因。
  3. null=True
    • 这表示该字段在数据库中可以为NULL。由于这是一个ForeignKey,当没有关联的父对象时,这个字段可能会是NULL
  4. blank=True
    • 在Django的表单验证中,blank=True表示该字段在表单中可以为空(即用户可以不填写该字段)。但是,对于ForeignKey字段,blank通常与表单的验证相关,而不是数据库层面的。在数据库层面,它是否可以为空是由null参数决定的。但在Django的admin或自定义表单中,你可能会想允许用户不填写这个字段,这时blank=True就很有用了。
  5. related_name=‘subs’
    • 这为反向关系提供了一个名字。默认情况下,如果你有一个名为MyModel的模型,并且它有一个指向自身的ForeignKey,那么你可以通过my_model_instance.mymodel_set.all()来获取与该实例相关的所有子对象。但是,通过设置related_name='subs',你可以通过my_model_instance.subs.all()来获取这些子对象,这使得代码更加清晰和易读。

综上所述,这个ForeignKey字段定义了一个模型与其自身之间的递归关系,允许模型实例有一个父实例(或没有),并提供了在父实例被删除时如何处理该关系的策略。同时,它还为反向关系提供了一个易于理解和使用的名字。

http://www.yayakq.cn/news/854975/

相关文章:

  • 商丘网站开发公司网站的验证码怎么做
  • 为什么网站需要维护网页设计图片怎么居中
  • 网站主页面布局怎么做面试网站建设的问题6
  • 网站设计手机版为什么那么多背景最新传奇手游2022首发排行
  • 网站有源代码如何做seowordpress is single
  • 高安市帮助做公司网站怎么自己做网站推广
  • 35互联做网站怎么样女士新能源小型车
  • 佛山公司网站设计团队网站制作步骤是什么
  • 加强检察门户网站建设情况网站建设状态栏
  • 可以做书的网站网站开发网站有哪些
  • 宁波智能模板建站网站SEO的评价
  • 合同下载网站每月网站开发费用
  • 网站功能与建设特色专业教育网站建设
  • 大坪网站建设手工制作大全创意废物利用
  • 网站内容设计上的特色杭州做网站制作
  • 深圳培训手机网站建设Windows怎么建设网站
  • 河南省建设厅网站中州杯网站建设公司汕头的
  • 找人做网站需要什么条件上海公司名称注册查询网
  • 手机端h5网站模板下载中国最大的外贸平台
  • 淘宝客是以下哪个网站的会员简称做app需要学什么编程
  • 如何找有需求做网站的公司建e网室内设计网下载
  • 做电梯销售从哪些网站获取信息响应式网站开发教程pdf
  • 南浔区住房和城乡建设局网站wordpress 跨站
  • 内部网站如何做淘宝网站可以做百度快照吗
  • 个人电商网站建设范例推广图片模板
  • 一站式服务就像一个什么锦州企业网站建设
  • 成都交易网站建设seo运营推广
  • 长春建网站怎么查询网站建设时间
  • 花瓣网网站模板网站分页代码
  • 句容本地网站wordpress 菜单 导航代码