日韩欧乱色一区二区三区在线_久久―日本道色综合久久_欧美日本一区二区_网曝91综合精品门事件在线

千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機(jī)構(gòu)

手機(jī)站
千鋒教育

千鋒學(xué)習(xí)站 | 隨時(shí)隨地免費(fèi)學(xué)

千鋒教育

掃一掃進(jìn)入千鋒手機(jī)站

領(lǐng)取全套視頻
千鋒教育

關(guān)注千鋒學(xué)習(xí)站小程序
隨時(shí)隨地免費(fèi)學(xué)習(xí)課程

當(dāng)前位置:首頁(yè)  >  技術(shù)干貨  > 數(shù)據(jù)庫(kù)設(shè)計(jì)時(shí)保持單個(gè)表的獨(dú)立性,但是表之間沒(méi)有主外鍵強(qiáng)制的約束,這樣設(shè)計(jì)的利弊是什么?

數(shù)據(jù)庫(kù)設(shè)計(jì)時(shí)保持單個(gè)表的獨(dú)立性,但是表之間沒(méi)有主外鍵強(qiáng)制的約束,這樣設(shè)計(jì)的利弊是什么?

來(lái)源:千鋒教育
發(fā)布人:xqq
時(shí)間: 2023-10-13 14:11:54 1697177514

一、數(shù)據(jù)庫(kù)設(shè)計(jì)時(shí)保持單個(gè)表的獨(dú)立性的利弊

利:?jiǎn)伪頂?shù)據(jù)的可維護(hù)性變強(qiáng)。 不會(huì)出現(xiàn)刪除這個(gè)表的數(shù)據(jù)影響到別的表的“意外”發(fā)生。對(duì)單張表的DML在特定情況下性能強(qiáng)于外鍵串起來(lái)的表

弊:數(shù)據(jù)的一致性可能會(huì)受到影響。

一般推薦業(yè)務(wù)性很強(qiáng)的數(shù)據(jù)庫(kù)(OA,ERP)用外鍵 。而線(xiàn)上網(wǎng)站對(duì)外提代訪(fǎng)問(wèn)多數(shù)建議用獨(dú)立表的然后輔以程序完成約束。

主關(guān)鍵字約束

主關(guān)鍵字約束指定表的一列或幾列的組合的值在表中具有惟一性,即能惟一地指定一行記錄。每個(gè)表中只能有一列被指定為主關(guān)鍵字,且IMAGE 和TEXT 類(lèi)型的列不能被指定為主關(guān)鍵字,也不允許指定主關(guān)鍵字列有NULL 屬性。

此處應(yīng)有說(shuō)明:多列組成的主鍵叫聯(lián)合主鍵,而且聯(lián)合主鍵約束只能設(shè)定為表級(jí)約束;單列組成的主鍵,既可設(shè)定為列級(jí)約束,也可以設(shè)定為表級(jí)約束。

聯(lián)合主鍵:聯(lián)合主鍵就是用2個(gè)或2個(gè)以上的字段組成主鍵。用這個(gè)主鍵包含的字段作為主鍵,這個(gè)組合在數(shù)據(jù)表中是少數(shù),且加了主鍵索引。

可以這么理解,比如,你的訂單表里有很多字段,一般情況只要有個(gè)訂單號(hào)bill_no做主鍵就可以了,但是,現(xiàn)在要求可能會(huì)有補(bǔ)充訂單,使用相同的訂單號(hào),那么這時(shí)單獨(dú)使用訂單號(hào)就不可以了,因?yàn)闀?huì)有重復(fù)。那么你可以再使用個(gè)訂單序列號(hào)bill_seq來(lái)作為區(qū)別。把bill_no和bill_seq設(shè)成聯(lián)合主鍵。即使bill_no相同,bill_seq不同也是可以的。

延伸閱讀:

二、外關(guān)鍵字約束是什么

外關(guān)鍵字約束定義了表之間的關(guān)系。當(dāng)一個(gè)表中的一個(gè)列或多個(gè)列的組合和其它表中的主關(guān)鍵字定義相同時(shí),就可以將這些列或列的組合定義為外關(guān)鍵字,并設(shè)定它適合哪個(gè)表中哪些列相關(guān)聯(lián)。這樣,當(dāng)在定義主關(guān)鍵字約束的表中更新列值,時(shí)其它表中有與之相關(guān)聯(lián)的外關(guān)鍵字約束的表中的外關(guān)鍵字列也將被相應(yīng)地做相同的更新。外關(guān)鍵字約束的作用還體現(xiàn)在,當(dāng)向含有外關(guān)鍵字的表插入數(shù)據(jù)時(shí),如果與之相關(guān)聯(lián)的表的列中無(wú)與插入的外關(guān)鍵字列值相同的值時(shí),系統(tǒng)會(huì)拒絕插入數(shù)據(jù)。與主關(guān)鍵字相同,不能使用一個(gè)定義為 TEXT 或IMAGE 數(shù)據(jù)類(lèi)型的列創(chuàng)建外關(guān)鍵字。外關(guān)鍵字非常多由16 個(gè)列組成。

指定在刪除表中數(shù)據(jù)時(shí),對(duì)關(guān)聯(lián)表所做的相關(guān)操作。在子表中有數(shù)據(jù)行與父表中的對(duì)應(yīng)數(shù)據(jù)行相關(guān)聯(lián)的情況下,如果指定了值CASCADE,則在刪除父表數(shù)據(jù)行時(shí)會(huì)將子表中對(duì)應(yīng)的數(shù)據(jù)行刪除;如果指定的是NO ACTION,則SQL Server 會(huì)產(chǎn)生一個(gè)錯(cuò)誤,并將父表中的刪除操作回滾。NO ACTION 是缺省值。

ON UPDATE {CASCADE | NO ACTION}

指定在更新表中數(shù)據(jù)時(shí),對(duì)關(guān)聯(lián)表所做的相關(guān)操作。在子表中有數(shù)據(jù)行與父表中的對(duì)應(yīng)數(shù)據(jù)行相關(guān)聯(lián)的情況下,如果指定了值CASCADE,則在更新父表數(shù)據(jù)行時(shí)會(huì)將子表中對(duì)應(yīng)的數(shù)據(jù)行更新;如果指定的是NO ACTION,則SQL Server 會(huì)產(chǎn)生一個(gè)錯(cuò)誤,并將父表中的更新操作回滾。NO ACTION 是缺省值。

NOT FOR REPLICATION

指定列的外關(guān)鍵字約束在把從其它表中復(fù)制的數(shù)據(jù)插入到表中時(shí)不發(fā)生作用。

聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
10年以上業(yè)內(nèi)強(qiáng)師集結(jié),手把手帶你蛻變精英
請(qǐng)您保持通訊暢通,專(zhuān)屬學(xué)習(xí)老師24小時(shí)內(nèi)將與您1V1溝通
免費(fèi)領(lǐng)取
今日已有369人領(lǐng)取成功
劉同學(xué) 138****2860 剛剛成功領(lǐng)取
王同學(xué) 131****2015 剛剛成功領(lǐng)取
張同學(xué) 133****4652 剛剛成功領(lǐng)取
李同學(xué) 135****8607 剛剛成功領(lǐng)取
楊同學(xué) 132****5667 剛剛成功領(lǐng)取
岳同學(xué) 134****6652 剛剛成功領(lǐng)取
梁同學(xué) 157****2950 剛剛成功領(lǐng)取
劉同學(xué) 189****1015 剛剛成功領(lǐng)取
張同學(xué) 155****4678 剛剛成功領(lǐng)取
鄒同學(xué) 139****2907 剛剛成功領(lǐng)取
董同學(xué) 138****2867 剛剛成功領(lǐng)取
周同學(xué) 136****3602 剛剛成功領(lǐng)取
相關(guān)推薦HOT
dbvisualizer怎么導(dǎo)出整個(gè)數(shù)據(jù)庫(kù)?

一、dbvisualizer導(dǎo)出整個(gè)數(shù)據(jù)庫(kù)的步驟1、連接要導(dǎo)出的數(shù)據(jù)庫(kù)打開(kāi)DBVisualizer,連接要導(dǎo)出的數(shù)據(jù)庫(kù),通過(guò)導(dǎo)航器選擇要導(dǎo)出的數(shù)據(jù)庫(kù)對(duì)象,如表...詳情>>

2023-10-13 16:04:27
像愛(ài)奇藝、優(yōu)酷等視頻網(wǎng)站的數(shù)據(jù)庫(kù)是怎么設(shè)計(jì)的?

一、像愛(ài)奇藝、優(yōu)酷等視頻網(wǎng)站的數(shù)據(jù)庫(kù)是怎么設(shè)計(jì)的1、設(shè)置數(shù)據(jù)集成一般來(lái)說(shuō)視頻網(wǎng)站數(shù)據(jù)庫(kù)的設(shè)計(jì)需要設(shè)置數(shù)據(jù)集成,針對(duì)于各大互聯(lián)網(wǎng)信息進(jìn)行...詳情>>

2023-10-13 15:50:12
為什么mysql中刪除某一列的主鍵索引后另一列會(huì)從少數(shù)索引變成主鍵索引?

一、為什么mysql中刪除某一列的主鍵索引后另一列會(huì)從少數(shù)索引變成主鍵索引mysql中刪除某一列的主鍵索引后另一列會(huì)從少數(shù)索引變成主鍵索引,一般...詳情>>

2023-10-13 15:48:38
Nosql與Hadoop、Voldemort、Dynamo之間關(guān)系是怎樣的?

一、Nosql與Hadoop、Voldemort、Dynamo之間關(guān)系是怎樣的Nosql是非關(guān)系數(shù)據(jù)庫(kù)。Voldemort和Dynamo都是鍵值數(shù)據(jù)庫(kù),屬于NoSQL的一種。Hadoop是一...詳情>>

2023-10-13 15:29:43
java開(kāi)發(fā)需要會(huì)什么?

一、Java基礎(chǔ)知識(shí)要成為一名合格的Java開(kāi)發(fā)人員,首先需要掌握J(rèn)ava的基礎(chǔ)知識(shí)。這包括了解Java的語(yǔ)法、變量、數(shù)據(jù)類(lèi)型、運(yùn)算符和控制流程等基本...詳情>>

2023-10-13 15:23:26
快速通道
主站蜘蛛池模板: 伊川县| 涟源市| 扎赉特旗| 江北区| 涪陵区| 牙克石市| 永丰县| 子长县| 阜康市| 遵义县| 淄博市| 任丘市| 保山市| 晋中市| 新巴尔虎左旗| 泊头市| 灵武市| 鄂托克前旗| 丰台区| 海兴县| 澜沧| 兴义市| 顺昌县| 东辽县| 建湖县| 历史| 马关县| 赤峰市| 东海县| 神农架林区| 海丰县| 阿拉尔市| 宜兰县| 衢州市| 锡林浩特市| 奉新县| 伊川县| 本溪市| 鹰潭市| 白银市| 永年县|