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

做外贸哪些网站可以找客户西安网站建设瑞信

做外贸哪些网站可以找客户,西安网站建设瑞信,河北省建设厅网站备案,网站登录人太多进不去怎么办表之间的关系 数据库表之间的关系分为三种#xff1a; 一对一关系#xff08;One-to-One#xff09;#xff1a;在这种关系中#xff0c;表A的每一行都与表B的一行关联#xff0c;反之亦然。例如#xff0c;每个人都有一个唯一的社保号#xff0c;每个社保号也只属于…表之间的关系 数据库表之间的关系分为三种 一对一关系One-to-One在这种关系中表A的每一行都与表B的一行关联反之亦然。例如每个人都有一个唯一的社保号每个社保号也只属于一个人。一对多关系One-to-Many在这种关系中表A的一行可以与表B的多行关联但表B的每一行只能与表A的一行关联。例如一位母亲可以有多个孩子但每个孩子只能有一个生物学上的母亲。多对多关系Many-to-Many在这种关系中表A的一行可以与表B的多行关联表B的一行也可以与表A的多行关联。例如一个学生可以选修多门课程一门课程也可以被多个学生选修。 在数据库中这些关系通常通过使用外键Foreign Key来建立。 外键 外键Foreign Key是一种特殊类型的数据库约束主要用于创建表之间的链接或关系。 外键是在一个表中创建的它是另一个表的主键Primary Key。这个外键用来指向另一个表的主键从而建立两个表之间的关系。 外键的主要目的是维护数据的引用完整性。这意味着如果试图在一个表中插入一行而这行数据的外键值在相关表中不存在数据库将不允许这个操作。同样如果试图删除一个表中的行而这行数据的主键在其他表中作为外键存在那么数据库也不会允许这个删除操作除非先删除或更改引用这个主键的所有外键。 例如假设有两个表一个是学生表一个是课程表。每个学生可以注册多个课程所以在课程表中可能会有一个列叫做 student_id这个列是学生表的外键。这样就可以通过学生的 ID 查询他们注册的所有课程同时也保证了每个课程都有一个注册的学生。 使用 SQLAlchemy 创建外键的步骤 定义表格首先需要定义数据库表格。每个表格对应一个 SQLAlchemy 类类中的每个属性对应表格中的一个列。设置外键在定义表格的过程中可以使用 ForeignKey 函数来设置外键。ForeignKey 函数的参数是想要链接的表格的列名。例如如果有一个 Order 表想让它链接到 Customer 表的 id 列可以这样写 customer_id Column(Integer, ForeignKey(customer.id))。创建关系在设置了外键之后还需要在 SQLAlchemy 类中使用 relationship 函数来创建两个表格之间的关系。例如可以在 Customer 类中添加如下的代码 orders relationship(Order, backrefcustomer)。 这段代码表示一个客户可以有多个订单每个订单都有一个关联的客户。创建数据库最后需要使用 SQLAlchemy 的 create_all 函数来创建数据库。这个函数会根据定义的 SQLAlchemy 类来创建表格并设置好所有的外键和关系。 实例 实现学生 Student 与 Lesson 之间的关系表的建立。 python 代码 Base declarative_base()# 定义 Student 表 class Student(Base):__tablename__ studentid Column(Integer, primary_keyTrue)name Column(String(50), nullableFalse)age Column(Integer)def __repr__(self):return Student(name%s, age%s) % (self.name, self.age)# 定义 Lesson 表 class Lesson(Base):__tablename__ lessonid Column(Integer, primary_keyTrue)name Column(String(50), nullableFalse)description Column(String(100), nullableFalse)student_id Column(Integer, ForeignKey(student.id))def __repr__(self):return Lesson(name%s, description%s) % (self.name, self.description)Base.metadata.create_all(engine)sql语句代码 create table student (id int auto_incrementprimary key,name varchar(50) not null,age int null );create table lesson (id int auto_incrementprimary key,name varchar(50) not null,description varchar(100) not null,student_id int null,constraint lesson_ibfk_1foreign key (student_id) references student (id) );create index student_idon lesson (student_id);表关系图 测试插入数据 # 测试插入数据# Student 数据 stu1 Student(namezmz, age10) stu2 Student(nameypb, age18) stu3 Student(namegll, age20)session.add_all([stu1, stu2, stu3]) session.commit()# Lesson 数据 l1 Lesson(namejava, descriptionthis is java, student_idstu1.id) l2 Lesson(namejava, descriptionthis is java, student_idstu2.id) l3 Lesson(namepython, descriptionthis is python, student_idstu1.id) session.add_all([l1, l2, l3]) session.commit()数据库 student 表 数据库 lesson 表 外键约束分类 RESTRICT这是默认选项。当尝试删除父表中的数据时如果子表中存在与之关联的数据那么这个删除操作将会被阻止。也就是说只有当没有任何子表行与父表行关联时才能删除父表中的行。NO ACTION在 MySQL 中这个选项的行为与 RESTRICT 选项相同。也就是说如果子表中存在与父表行关联的行那么尝试删除父表中的行将会被阻止。CASCADE这个选项表示级联删除。当你删除父表中的行时所有在子表中与之关联的行也会被自动删除。这种选项需要谨慎使用因为它可能会导致大量的数据被删除。SET NULL当父表中的行被删除时这个选项会将子表中所有与之关联的行的外键列设置为 NULL。这意味着子表中的这些行不再与父表中的任何行关联。注意为了使用这个选项子表的外键列必须允许 NULL 值。 修改 lesson 表 # 定义 Lesson 表 class Lesson(Base):__tablename__ lessonid Column(Integer, primary_keyTrue)name Column(String(50), nullableFalse)description Column(String(100), nullableFalse)student_id Column(Integer, ForeignKey(student.id, ondeleteCASCADE), nullableFalse)def __repr__(self):return Lesson(name%s, description%s) % (self.name, self.description)注意事项 问题 加入在添加数据时我们先提交了 student 中的数据,之后在提交了 lesson 中的数据会造成 lesson 中 student_id 为空。 分析 在 SQLAlchemy 中当使用 session.add() 方法时数据并不会立即被写入数据库而是被添加到了会话的事务队列中。只有当调用 session.commit() 方法时才会将这些变更写入数据库。在这之前新创建的 Student 对象的 id 属性是 None因为它们还没有被分配数据库中的 id。 在代码中首先创建了几个 Student 对象并使用 session.add_all() 添加到会话中但是在添加 Lesson 对象之前没有调用 session.commit()。因此当试图访问 stu1.id 时它其实是 None这就是为什么在插入 Lesson 数据时会出现错误。 为了解决这个问题需要在添加 Lesson 对象之前先提交 Student 对象。
http://www.hkea.cn/news/14515658/

相关文章:

  • 手机可以建设网站吗wordpress收费主题破解下载
  • 为网站做外链的文章企业查询系统
  • 织梦网站后台教程泰州网站设计公司
  • 网站开发外包公司wordpress搭建电商教程
  • 做网站的的人收入多少钱医院做网站的意义
  • 获得网页源码怎么做网站舆情系统源码
  • 网站介绍视频怎么做苏州工业园区建设局网站
  • 大学有吗网站建设小程序制作定制开发
  • 1个人做多网站负责人wordpress 目录插件
  • 东阿县住房和城乡建设局网站个人介绍微电影网站模板
  • 建设银行银行号查询网站网站建设的栏目规划
  • 销售类网站数据库的建设辽宁智能网站建设推荐
  • 网站与网页设计六安市民网
  • 太和县住房和城乡建设局网站安钢贴吧论坛
  • 北京网站建设工作室哪家好手机存储wordpress
  • 网站制作及排名优化中国企业信用网
  • 铜仁网站建设wordpress拨号
  • 企业网站开发 流程个人网页设计与制作研究背景
  • 网站app的区别国外有趣的网站
  • 茂名做网站报价查看自己网站访问量
  • 正规网站建设学习网公司哪家好广东省建设监理协会网站 - 首页
  • 武进网站制作公司景安网站
  • 成都市网站备案西安网站建设公司找哪家
  • 兰州网站seo服务app推广联盟平台
  • 宿迁建设局网站拆除备案王牌网站做代理
  • 建设银行企业网上银行网站什么网站可以做软件有哪些东西吗
  • 织梦网站如何更新系统第三方公司做网站价格
  • 怎么做网站的一个横向列表山东东平建设工程招标网站
  • 申请主机网站美团做团购网站
  • 述建设一个网站的具体步骤企业文化理念