深刻理解数据库外键含义

上课的时候老师讲的很清楚,但是毕竟没有实际操作数据库,思考和实践真的完全是不同层次的。

我的读者表里面全是学生这一类,外键约束使得学生这一类别在类别表中无法删除,就是因为读者表中的学生这一类在约束,试想没有学生这一类,那么读者表里面的学生类别怎么办呢?所以必须得先把读者表里面的学生全删没了,才能从类别表中去掉学生这一类。

时间: 2024-11-01 11:40:39

深刻理解数据库外键含义的相关文章

开源进销存PSI - 数据库外键

今天在PSI的QQ群中聊起了数据库外键的话题,我就写这篇博文,说说我对数据库外键的一些考虑. 1.数据库设计中应该使用外键. 2.很杯具,PSI的数据库设计到目前为止,没有使用外键. 3.PSI会逐步把数据库外键给补上. 4.有些地方还真没法加上外键.举现在的例子: 4.1 t_warehouse_org中的org_id字段,即可以存储 t_org的id,又可以存储t_user的id,这个时候,外键就没法加了. 4.2 t_inventory_detail中的ref_number字段,可以存储多

[转载]数据库外键的使用

[转载]数据库外键的使用 外键的作用: 保持数据一致性,完整性,主要目的是控制存储在外键表中的数据. 使两张表形成关联,外键只能引用外表中的列的值! 例如: a b 两个表 a表中存有客户号,客户名称 b表中存有每个客户的订单 有了外键后 你只能在确信b 表中没有客户x的订单后,才可以在a表中删除客户x 建立外键的前提: 本表的列必须与外键类型相同(外键必须是外表主键). 指定主键关键字: foreign key(列名) 引用外键关键字: references <外键表名>(外键列名) 事件触

第二百八十节,MySQL数据库-外键链表之一对多

MySQL数据库-外键链表之一对多 外键链表之一对多 外键链表:就是a表通过外键连接b表的主键,建立链表关系 一对多:就是b表的某一个字段值对应a表外键里的多个值,前提是a表要与b表链表

SSH框架之Hibernate数据库外键如何插入值的问题

SSH框架之Hibernate数据库外键如何插入值的问题 一.目标: 现有表: 其中Tea_id属于外键,如何向含有外键的表中插入对应的数据. 二.pojos部分 Course_information .java package com.pojos; import java.util.Date; public class Course_information { private Integer Course_id; private String Course_name; private Inte

数据库外键的使用

外键的作用: 保持数据一致性,完整性,主要目的是控制存储在外键表中的数据. 使两张表形成关联,外键只能引用外表中的列的值! 例如: a b 两个表 a表中存有客户号,客户名称 b表中存有每个客户的订单 有了外键后 你只能在确信b 表中没有客户x的订单后,才可以在a表中删除客户x 建立外键的前提: 本表的列必须与外键类型相同(外键必须是外表主键). 指定主键关键字: foreign key(列名) 引用外键关键字: references <外键表名>(外键列名) 事件触发限制: on delet

数据库外键使用

数据库到底用不用外键.触发器.索引.视图.存储过程 收藏 今天听了一个企业技术总监的宣讲,结果听说在他开发系统的过程中,都没有用到外键,这让我很惊讶,赶紧上网搜索了一些资料看了看,终于明白了不用外键的原因. 这是一篇关于是否使用外键的讨论,讲的很有道理: 对于主/外键/索引来说,在一些开发团队中被认为是处理数据库关系的利器,也被某些开发团队认为是处理某些具体业务的魔鬼,您的观点呢?在实际应用中您会采取哪种方式? 大家共同观点:主键和索引是不可少的,不仅可以优化数据检索速度,开发人员还省不其它的工

mysql数据库--外键的三种关系

主要内容: 如何找出两张表之间的关系 表的三种关系 一.介绍 因为有foreign key的约束,使得两张表形成了三种了关系: 多对一 多对多 一对一 二.重点理解如果找出两张表之间的关系 分析步骤: #1.先站在左表的角度去找 是否左表的多条记录可以对应右表的一条记录,如果是,则证明左表的一个字段foreign key 右表一个字段(通常是id) #2.再站在右表的角度去找 是否右表的多条记录可以对应左表的一条记录,如果是,则证明右表的一个字段foreign key 左表一个字段(通常是id)

09-Mysql数据库----外键的变种

本节重点: 如何找出两张表之间的关系 表的三种关系 一.介绍 因为有foreign key的约束,使得两张表形成了三种了关系: 多对一 多对多 一对一 二.重点理解如果找出两张表之间的关系 分析步骤: #1.先站在左表的角度去找 是否左表的多条记录可以对应右表的一条记录,如果是,则证明左表的一个字段foreign key 右表一个字段(通常是id) #2.再站在右表的角度去找 是否右表的多条记录可以对应左表的一条记录,如果是,则证明右表的一个字段foreign key 左表一个字段(通常是id)

SqlServer数据库外键的困惑

在设计数据库和备份数据的时候是否使用外键一直很纠结.先说一下外键的优缺点吧 优点:保证数据的完整性和一致性和可靠性,能做到一次修改所有使用外键的数据对应的信息都改变的作用 缺点:数据表增多,增加开发难度.降低(Insert.Update.Delete)速度 取代外键的方法:触发器.程序 订单一般是我们设计最多的数据了.下面以订单举个类子 订单一般会有客户.订单状态.产品.供应商等信息. 这些属性都有外键以及各自的描述信息,如果订单上只存在有这些信息的外键.会有以下几个问题. 1. 查询/新增/修