Jinsi ya Kujenga Keys za Nje katika Microsoft SQL Server

Moja ya dhana muhimu zaidi katika databasta ni kujenga uhusiano kati ya meza za database. Mahusiano haya hutoa utaratibu wa kuunganisha data zilizohifadhiwa katika meza nyingi na kuzipata kwa ufanisi. Ili kuunda kiungo kati ya meza mbili, lazima ueleze ufunguo wa kigeni katika meza moja ambayo inaelezea safu katika meza nyingine.

Majedwali ya Database na Uhusiano

Huenda unajua tayari kwamba orodha ya data ni tu mfululizo wa meza , sawa na kile ambacho unaweza kutumia tayari katika mpango wa sahajedwali , kama Microsoft Excel. Kwa kweli, unaweza hata kubadilisha sahajedwali la Excel kwenye databana. Ambapo databasari zinatofautiana kutoka kwa sahajedwali, hata hivyo, ni linapokuja kujenga uhusiano mazuri kati ya meza.

Fikiria, kwa mfano, database iliyotumiwa na kampuni ili kufuatilia taarifa za rasilimali za binadamu. Hifadhi hiyo inaweza kuwa na meza inayoitwa Wafanyakazi ambayo ina habari zifuatazo kwa kila mwanachama wa wafanyakazi wa kampuni hiyo:

Katika mfano huu, Kitambulisho cha mfanyakazi ni kiini cha kipekee kilichozalishwa ambacho hutolewa kwa kila mfanyakazi wakati wanaongezwa kwenye databana. ID ya nafasi ni nambari ya kazi inayotumiwa kurejelea msimamo wa mfanyakazi katika kampuni. Katika mpango huu, mfanyakazi anaweza kuwa na nafasi moja tu, lakini wafanyakazi wengi (au hapana) wanaweza kujaza kila nafasi. Kwa mfano, unaweza kuwa na mamia ya wafanyakazi wenye nafasi ya "Msaidizi".

Database inaweza pia kuwa na meza inayoitwa Positions na taarifa zifuatazo za ziada kuhusu kila nafasi:

Kipengele cha ID ya Position katika meza hii ni sawa na shamba la Wafanyakazi katika meza ya Wafanyakazi - ni integuo ya kipekee iliyotengenezwa wakati nafasi imeongezwa kwenye databana.

Tunapoenda kuvuta orodha ya wafanyakazi kutoka kwenye orodha, itakuwa ya kawaida kuomba jina la kila mtu na cheo chake. Hata hivyo, habari hii imehifadhiwa kwenye meza nyingi za database, hivyo inaweza kupatikana tu kwa kutumia JOIN swala ambayo inahitaji uhusiano uliopo kati ya meza.

Unapoangalia muundo wa meza, uwanja unaoelezea uhusiano ni dhahiri - kipengele cha ID ya nafasi. Kila mfanyakazi anaweza kuwa na msimamo mmoja tu na nafasi hiyo inatambuliwa kwa kuhusisha Kitambulisho cha Position kutoka kwa kuingia kwa safu ya nafasi ya Msaada. Mbali na kuwa kiini cha msingi cha meza ya Vyeo, kwa mfano huu, uwanja wa ID ya Position pia ni ufunguo wa kigeni kutoka kwa Wafanyakazi meza kwenye meza ya nafasi. Database inaweza kisha kutumia uwanja huu ili kuunganisha habari kutoka kwa meza nyingi na kuhakikisha kwamba mabadiliko yoyote au nyongeza kwenye database yanaendelea kutekeleza utimilifu wa kutafakari .

Mara baada ya kutambua ufunguo wa kigeni, unaweza kwenda mbele na kuvuta habari taka kutoka kwenye daraka ukitumia swala lifuatayo:

Chagua jina la kwanza, jina la mwisho, kichwa kutoka kwa waajiriwa INNER JOIN Machapisho kwenye Wafanyakazi.PositionID = Vyeti.PositionID

Kujenga Keki za Kigeni katika SQL Server

Kwa kitaalam, huna haja ya kufafanua uhusiano waziwazi kufanya maswali kama yale hapo juu. Hata hivyo, ikiwa unafafanua wazi uhusiano kwa kutumia kizuizi cha ufunguo wa kigeni, database itaweza kufanya kazi ya kutunza nyumba kwa ajili yako:

Hapa ndivyo unavyoweza kuunda ufunguo wa kigeni katika SQL Server:

ALTER TABLE Wafanyakazi PADIA MAFUNZO YAKATI (PositionID) REFERENCES Vyeo (PositionID)

Unaweza pia kuunda ufunguo wa kigeni wakati unda meza kwa kuongeza kifungu:

REFERENCES ZENYE ZA KIWEZO Vyeo (PositionID)

hadi mwisho wa safu ya safu ya safu ya ufunguo wa kigeni.