第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

何時(shí)/為什么在SQL Server中使用級(jí)聯(lián)?

何時(shí)/為什么在SQL Server中使用級(jí)聯(lián)?

慕勒3428872 2019-12-10 10:46:25
在SQL Server中設(shè)置外鍵時(shí),在什么情況下應(yīng)在刪除或更新時(shí)級(jí)聯(lián)它,其背后的原因是什么?這可能也適用于其他數(shù)據(jù)庫。我正在尋找每種情況的具體示例,最好是從成功使用它們的人那里獲得。
查看完整描述

3 回答

?
慕雪6442864

TA貢獻(xiàn)1812條經(jīng)驗(yàn) 獲得超5個(gè)贊

到目前為止我所看到的摘要:

  • 有些人根本不喜歡級(jí)聯(lián)。

級(jí)聯(lián)刪除

  • 當(dāng)關(guān)系的語義可能涉及排他性的“是 ”描述的一部分時(shí),級(jí)聯(lián)刪除可能很有意義。例如,OrderLine記錄是其父訂單的一部分,并且OrderLines永遠(yuǎn)不會(huì)在多個(gè)訂單之間共享。如果Order消失,OrderLine也應(yīng)該消失,沒有Order的行將成為問題。

  • 級(jí)聯(lián)刪除的典型示例是SomeObject和SomeObjectItems,在這種情況下,沒有相應(yīng)的主記錄就不會(huì)存在項(xiàng)目記錄。

  • 你應(yīng)該使用級(jí)聯(lián)刪除,如果你保存歷史或使用“軟/邏輯刪除”,您只設(shè)置一個(gè)刪除位列1 /真。

級(jí)聯(lián)更新

  • 當(dāng)您在表之間使用實(shí)鍵而不是代理鍵(標(biāo)識(shí)/自動(dòng)增量列)時(shí),級(jí)聯(lián)更新可能會(huì)很有意義。

  • 當(dāng)您具有可變的外鍵(例如可以更改的用戶名)時(shí),Cascade Update的典型示例。

  • 你應(yīng)該使用級(jí)聯(lián)更新與被標(biāo)識(shí)/自動(dòng)增量列鍵。

  • 級(jí)聯(lián)更新最好與唯一約束結(jié)合使用。

何時(shí)使用級(jí)聯(lián)

  • 您可能希望在允許操作進(jìn)行級(jí)聯(lián)之前從用戶那里獲得額外的確認(rèn),但這取決于您的應(yīng)用程序。

  • 如果您錯(cuò)誤地設(shè)置了外鍵,級(jí)聯(lián)會(huì)給您帶來麻煩。但是,如果您做對的話,您應(yīng)該可以。

  • 在完全理解之前,使用級(jí)聯(lián)是不明智的。但是,它是一個(gè)有用的功能,因此值得花一些時(shí)間來理解。


查看完整回答
反對 回復(fù) 2019-12-10
?
慕田峪7331174

TA貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超13個(gè)贊

外鍵是確保數(shù)據(jù)庫引用完整性的最佳方法。避免由于魔術(shù)而導(dǎo)致的級(jí)聯(lián)就像在匯編中編寫所有內(nèi)容一樣,因?yàn)槟幌嘈啪幾g器背后的魔術(shù)。

不好的是錯(cuò)誤使用了外鍵,例如,向后創(chuàng)建外鍵。

胡安·曼努埃爾(Juan Manuel)的例子就是規(guī)范的例子,如果您使用代碼,則有更多的機(jī)會(huì)在數(shù)據(jù)庫中留下偽造的DocumentItem,這些東西會(huì)咬你。

級(jí)聯(lián)更新很有用,例如,當(dāng)您通過可以更改的內(nèi)容引用數(shù)據(jù)時(shí),例如說用戶表的主鍵是名稱,姓氏組合。然后,您希望該組合中的更改傳播到引用的任何位置。

@Aidan,您所指的這種清晰度付出了高昂的代價(jià),即有可能將虛假數(shù)據(jù)保留在數(shù)據(jù)庫中,這是不小的機(jī)會(huì)。對我而言,通常只是缺乏對DB的熟悉,并且在與DB合作之前無法找到哪些FK會(huì)加劇這種恐懼。要么,要么是不斷地濫用級(jí)聯(lián),在實(shí)體在概念上不相關(guān)的地方,或者必須保留歷史的地方使用級(jí)聯(lián)。


查看完整回答
反對 回復(fù) 2019-12-10
?
米脂

TA貢獻(xiàn)1836條經(jīng)驗(yàn) 獲得超3個(gè)贊

我從不使用級(jí)聯(lián)刪除。

如果我想從數(shù)據(jù)庫中刪除某些內(nèi)容,我想明確地告訴數(shù)據(jù)庫我要取出的內(nèi)容。

當(dāng)然,它們是數(shù)據(jù)庫中可用的功能,有時(shí)可能可以使用它們,例如,如果您有一個(gè)“ order”表和一個(gè)“ orderItem”表,則您可能希望在刪除某個(gè)表時(shí)清除它們。訂購。

我喜歡從代碼(或存儲(chǔ)過程)中獲得的清晰度,而不是發(fā)生“魔術(shù)”事件。

出于同樣的原因,我也不喜歡觸發(fā)器。

需要注意的是,即使您刪除了一個(gè)“訂單”,即使級(jí)聯(lián)刪除刪除了50個(gè)“ orderItem”,您也會(huì)得到“ 1行受影響”的報(bào)告。


查看完整回答
反對 回復(fù) 2019-12-10
  • 3 回答
  • 0 關(guān)注
  • 637 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)