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

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

非主鍵的外鍵

非主鍵的外鍵

慕標(biāo)琳琳 2019-08-16 17:23:28
非主鍵的外鍵我有一個保存數(shù)據(jù)的表,其中一行需要存在于另一個表中。所以,我想要一個外鍵來保持參照完整性。CREATE TABLE table1(    ID INT NOT NULL IDENTITY(1,1) PRIMARY KEY,    AnotherID INT NOT NULL,    SomeData VARCHAR(100) NOT NULL)CREATE TABLE table2(    ID INT NOT NULL IDENTITY(1,1) PRIMARY KEY,    AnotherID INT NOT NULL,    MoreData VARCHAR(30) NOT NULL,    CONSTRAINT fk_table2_table1 FOREIGN KEY (AnotherID) REFERENCES table1 (AnotherID))但是,正如你所看到的,表我是外鍵,列不是PK。有沒有辦法創(chuàng)建這個外鍵,或者更好的方法來維護(hù)這種引用完整性?
查看完整描述

3 回答

?
慕少森

TA貢獻(xiàn)2019條經(jīng)驗(yàn) 獲得超9個贊

正如其他人所指出的那樣,理想情況下,外鍵將被創(chuàng)建為對主鍵(通常是IDENTITY列)的引用。但是,我們并不是生活在一個理想的世界中,有時甚至對模式的“小”改變也會對應(yīng)用程序邏輯產(chǎn)生明顯的連鎖反應(yīng)。

考慮具有SSN列(和啞主鍵)的Customer表的情況,以及還包含SSN列的Claim表(由Customer數(shù)據(jù)中的業(yè)務(wù)邏輯填充,但不存在FK)。該設(shè)計存在缺陷,但已經(jīng)使用了好幾年,并且已經(jīng)在架構(gòu)上構(gòu)建了三種不同的應(yīng)用程序。顯而易見的是,剝離Claim.SSN并建立真正的PK-FK關(guān)系將是理想的,但也將是一次重大的改革。另一方面,對Customer.SSN設(shè)置UNIQUE約束,并在Claim.SSN上添加FK,可以提供參照完整性,對應(yīng)用程序影響很小或沒有影響。

不要誤解我,我都是為了正常化,但有時候?qū)嵱弥髁x勝過理想主義。如果可以通過創(chuàng)可貼幫助平庸的設(shè)計,可以避免手術(shù)。


查看完整回答
反對 回復(fù) 2019-08-16
  • 3 回答
  • 0 關(guān)注
  • 1467 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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