Hvernig á að búa til erlenda lykla í Microsoft SQL Server

Eitt af mikilvægustu hugtökunum í gagnagrunni er að skapa tengsl milli gagnagrunna. Þessi sambönd veita kerfi til að tengja gögn sem eru geymd í mörgum töflum og sækja þær á skilvirkan hátt. Til að búa til tengil á milli tveggja tafla verður þú að tilgreina erlendan lykil í einu töflu sem vísar til dálks í öðru töflu.

Gagnasafn töflur og sambönd

Þú gætir nú þegar vitað að gagnagrunnar eru einfaldlega nokkrar töflur , svipaðar því sem þú gætir nú þegar notað í töflureikni , svo sem Microsoft Excel. Í raun getur þú jafnvel umbreytt Excel töflureikni í gagnagrunn. Þar sem gagnagrunna eru frábrugðnar töflureiknum er það hins vegar þegar kemur að því að byggja upp öflug tengsl milli tafla.

Íhuga, til dæmis, gagnagrunn sem fyrirtækið notar til að fylgjast með mannauðsupplýsingum. Þessi gagnagrunnur gæti haft borð sem kallast Starfsmenn sem innihalda eftirfarandi upplýsingar fyrir hvern starfsmann fyrirtækisins:

Í þessu dæmi er starfsmenn-auðkenni einstaklega myndað heiltala sem er úthlutað hverjum starfsmanni þegar þeir eru bættir við gagnagrunninn. Staða auðkenni er starfskóði sem notað er til að vísa til stöðu starfsmanns í félaginu. Í þessu kerfi getur starfsmaður aðeins haft eina stöðu en margir (eða nei) starfsmenn geta fyllt hverja stöðu. Til dæmis gætir þú átt hundruð starfsmanna með "Cashier" stöðu.

Gagnagrunnurinn gæti einnig innihaldið töflu sem heitir Positions með eftirfarandi viðbótarupplýsingum um hverja stöðu:

Staða ID-staðarnets í þessari töflu er svipað og starfsfólki starfsmannsins í starfsmannatöflunni - það er einstaklega myndað heiltölu sem er búið til þegar staða er bætt við gagnagrunninn.

Þegar við förum til að draga skráningu starfsmanna úr gagnagrunninum, væri náttúrulegt að óska ​​eftir nafn hvers og eins og nafn þeirra. Hins vegar eru þessar upplýsingar geymdar í mörgum gagnagrunni töflum, þannig að það er aðeins hægt að sækja með því að nota JOIN fyrirspurn sem þarfnast tengsl milli taflnanna.

Þegar þú horfir á uppbyggingu boranna er svæðið sem skilgreinir samhengið líklega augljóst - Staða ID-svæðisins. Hver starfsmaður getur aðeins haft eina stöðu og þessi staða er auðkenndur með því að taka upp stöðuheitið frá samsvarandi færslu staðsetningarstöðu. Til viðbótar við að vera aðal lykillinn fyrir staðsetningartöflunni, í þessu dæmi er staðsetningar-auðkenni reitinn einnig erlent lykill úr starfsmannatöflunni í staðatöflunni. Gagnagrunnurinn getur síðan notað þetta reit til að tengja upplýsingar úr mörgum borðum og tryggja að allar breytingar eða viðbætur við gagnagrunninn halda áfram að framfylgja referential integrity .

Þegar þú hefur skilgreint erlent lykill getur þú farið á undan og dregið til viðeigandi upplýsinga úr gagnagrunninum með eftirfarandi fyrirspurn:

SELECT FirstName, LastName, Titill FROM Starfsmenn INNER JOIN Stöður ON Starfsmenn.PositionID = Positions.PositionID

Búa til erlenda lykla í SQL Server

Tæknilega, þú þarft ekki að skilgreina sambandið sérstaklega til að geta framkvæmt fyrirspurnir eins og hér að ofan. Hins vegar, ef þú skilgreinir beinlínis sambandið með því að nota erlenda takkaþvingun, þá getur gagnagrunnurinn gert nokkrar hreinlætisstarf fyrir þig:

Svona ertu að búa til erlenda lykilinn í SQL Server:

ALTER TAFLA Starfsmenn ADD FOREIGN KEY (StaðaID) Tilvísanir Stöður (StaðaID)

Þú getur einnig búið til erlendan lykil þegar þú býrð til töflu með því að bæta við ákvæðinu:

FRAMLEIÐSLUÐIR TILKYNNINGAR Staða (StaðaID)

til loka dálks skilgreiningarinnar fyrir erlenda lykil dálkinn.