资讯专栏INFORMATION COLUMN

两表互为外键的解决方案

孙吉亮 / 791人阅读

摘要:这是面试中遇到的一个题如果两个表的主键互为对方的外键如何处理方案一适合直接在数据库中操作的时候用方案二外键是可以为的,所以在框架的中使用时,把对应字段的外键设置为允许为,存的时候先存其中一个此时外键为存完另一个再来更新其外键即可以为例存的时

这是面试中遇到的一个题

如果两个表的主键互为对方的外键如何处理?

方案一
适合直接在数据库中操作的时候用

set @@foreign_key_checks=OFF 

方案二
外键是可以为null的,所以在框架的ORM中使用时,把对应字段的外键设置为允许为null,存的时候先存其中一个model(此时外键为null), 存完另一个model再来更新其外键即可.

以Django为例

from django.db import models

class Action(models.Model):
    step = models.ForeignKey("Step", related_name="step", null=True, blank=True)

class Step(models.Model):
    action = models.ForeignKey("Action", related_name="action", null=True, blank=True)

存的时候这样

a = Action(step_id=None)
a.save()

s = Step(action_id=a.id)
s.save()

a.step_id = s.id
a.save()

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/32028.html

相关文章

  • Hibernate 注解使用

    摘要:声明添加对乐观锁定的支持一些属性关联关系获取方式即是否采用延时加载及时加载,是在查询数据时,也直接一起获取关联对象的数据。在前面的基础上增加课程类并补充学生类学生类负责关联关系 Hibernate 注解使用 在Hibernate中通常配置对象关系映射关系有两种,一种是基于xml的方式,另一种是基于Hibernate Annotation库的注解方式。在Hibernate 3.2版本和J...

    Jinkey 评论0 收藏0
  • mysql基础

    摘要:关键字,,等数据库操作语言用来对数据库中表的数据进行增删改。关键字,等数据控制语言了解用来定义数据库的访问权限和安全级别,以及创建用户。 Mysql 一、SQL的基本概念和通用语法 1.1 什么是SQL? structured query language:结构化查询语言 就是定义操作所有关系型数据库的规则;每一种数据库的操作方式存在不一样的地方,我们就叫做方言; 1.2 SQL的通用...

    jasperyang 评论0 收藏0
  • mysql键的使用

    摘要:一早就知道有有外键这回事,但是貌似平时的项目中用到的并不多,以至于我没有去研究过这个东西,也不知道该怎么用。这篇文章先搞清楚外键的作用。接着建一张包含外键的表。 一早就知道有mysql有外键这回事,但是貌似平时的项目中用到的并不多,以至于我没有去研究过这个东西,也不知道该怎么用。当然也不清楚对性能的影响。这篇文章先搞清楚外键的作用。 首先来添加一张表,做为测试要用的一张参考表。 CRE...

    fevin 评论0 收藏0
  • 一篇文章入门SQL语句

    摘要:,是专门用来查询关系型数据库的语言。分组单独使用是没什么意义的,除非是和聚合函数一起用。联合操作符用于合并两个或多个语句的结果集。列出在中国和美国的所有的雇员子查询实际上就是用子语句返回一个值,来方便主句查询。 SQL Structured Query Language,是专门用来查询关系型数据库的语言。也就是说不是关系型数据库,就不能用SQL查询了。 MySQL的主要学习,其实都是集...

    lidashuang 评论0 收藏0
  • MySQL学习记录

    摘要:主键主要是用于其他表的外键关联,以及本记录的修改与删除。王匹配的是字段结尾为王的所有记录王匹配的是字段开头为王的所有记录王匹配的是字段包含王的所有记录表示任何单个字符,匹配单个任意字符,它常用来限制表达式的字符长度。 什么是数据库? 数据库Database是按照数据结构来组织、存储和管理数据的仓库。常见的数据库有Oracle、DB2、SQL Server、MySQL等... MySQL...

    琛h。 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<