上一篇在创造新的资料库时,有提到PRIMARY KEY也就是主键限制!那麽此篇来继续介绍FOREIGN KEY 外键限制。因为外键限制在关联式资料库非常的重要。主要的功用是指向其他表的主键(Primary Key)的栏位,用於确定两张表的关联性及资料完整性,以避免部分资料匹配不上的问题。
特别提醒:
接下来直接用经典的客户与订单的关系来了解吧!
首先我们先看到这张客户资料表纪录了4笔顾客资料。顾客姓名则是Primary Key(虽然不应该用姓名拿来当pk,可能会有同名同姓的问题,但将就一下这样比较好解释xD)
客户资料表
顾客姓名(Primary Key) | 住址 | 电话 |
---|---|---|
李大华 | 桃园 | 09111211 |
李大华 | 高雄 | 09232323 |
林小明 | 台北 | 09256627 |
林小美 | 新北 | 09741852 |
然後我们看到订单资料表上也有顾客姓名,因为我们想知道这笔订单会是谁订的。只要确保外键限制有连接好,[订单资料表的顾客姓名]会等於[客户资料表的顾客姓名],这样不仅能方便查询更可以防止订单编号05的状况出现。
来看看订单编号05的顾客姓名并没有出现在客户资料表,所以如果我们有连接好外键限制,这笔资料会加不上去,以防止幽灵订单的出现。
订单资料表
订单编号(Primary Key) | 顾客姓名(FOREIGN KEY) | 商品名称 | 价格 |
---|---|---|---|
01 | 李大华 | 汉堡 | 70 |
02 | 李大华 | 薯条 | 50 |
03 | 林小明 | 可乐 | 40 |
04 | 林小美 | 拉面 | 230 |
05 | 罗小呆 | 奶茶 | 87 |
今天就到这里下篇见了~中秋连假快乐
<<: 【在 iOS 开发路上的大小事-Day07】除了用 WKWebView 以外,还可以如何在 App 中显示 PDF 档案呢?
话不多说先上图 从左到右依序执行,最後该函式会再呼叫自己一次,图中淡化的区块是下个章节的主题 然後把...
上一篇看完了 AngularJS 与 Angular 的差异後,我们今天要集中火力来看看 Angul...
前言 上一篇我们用 Python 简单的几行程序,就可以实践工厂方法设计模式,本篇继续讨论另一个设计...
这篇算是笔记 看到有人发问slice有关的问题 有人回答用copy()进行复制slice,我就想跟用...
在这篇开始之前想到一个小故事... 业务工程师: 我把流程都给你了,你们应该可以很快做完吧? 工程师...