Paano Gumawa ng Dayuhang Keys sa Microsoft SQL Server

Ang isa sa mga pinakamahalagang konsepto sa mga database ay ang paglikha ng mga relasyon sa pagitan ng mga talahanayan ng database. Nagbibigay ang mga relasyon na ito ng isang mekanismo para sa pag-link ng data na nakaimbak sa maraming mga talahanayan at pagkuha sa isang mahusay na paraan. Upang lumikha ng isang link sa pagitan ng dalawang talahanayan, kailangan mong tukuyin ang isang banyagang susi sa isang talahanayan na tumutukoy sa isang haligi sa isa pang talahanayan.

Mga Tables ng Database at Mga Relasyon

Maaaring alam mo na ang mga database ay isang serye lamang ng mga talahanayan , katulad ng kung ano ang maaari mong gamitin sa isang programa ng spreadsheet , tulad ng Microsoft Excel. Sa katunayan, maaari mo ring i-convert ang isang Excel spreadsheet sa isang database. Kung saan ang mga database ay magkakaiba mula sa mga spreadsheet, gayunpaman, ay pagdating sa pagtatayo ng mga makapangyarihang relasyon sa pagitan ng mga talahanayan.

Isaalang-alang, halimbawa, isang database na ginagamit ng isang kumpanya upang subaybayan ang impormasyon ng tao na mapagkukunan. Ang database na iyon ay maaaring may talahanayan na tinatawag na Mga empleyado na naglalaman ng sumusunod na impormasyon para sa bawat miyembro ng kawani ng kumpanya:

Sa halimbawang ito, ang empleyado ID ay isang natatanging nabuong integer na nakatalaga sa bawat empleyado kapag sila ay idinagdag sa database. Ang ID ng posisyon ay isang code ng trabaho na ginagamit upang puntahan ang posisyon ng empleyado sa kumpanya. Sa ganitong pamamaraan, ang isang empleyado ay maaaring magkaroon lamang ng isang posisyon, ngunit ang maramihang (o hindi) empleyado ay maaaring punan ang bawat posisyon. Halimbawa, maaaring mayroon kang daan-daang empleyado na may posisyon ng "Cashier".

Maaaring maglaman din ang database ng isang table na tinatawag na Mga Posisyon na may sumusunod na karagdagang impormasyon tungkol sa bawat posisyon:

Ang field ng Posisyon ID sa talahanayan na ito ay katulad ng field ng Employee ID sa talahanayan ng mga empleyado - ito ay isang natatanging nabuong integer na nilikha kapag ang isang posisyon ay idinagdag sa database.

Kapag pumunta kami sa pull ng listahan ng mga empleyado mula sa database, natural na humiling ng pangalan ng bawat tao at ng kanilang pamagat. Gayunman, ang impormasyong ito ay naka-imbak sa maramihang mga talahanayan ng database, kaya maaari itong makuha lamang gamit ang isang JOIN query na nangangailangan ng umiiral na kaugnayan sa pagitan ng mga talahanayan.

Kapag tiningnan mo ang istraktura ng mga talahanayan, ang patlang na tumutukoy sa relasyon ay marahil halata - ang posisyon ng Posisyon ID. Ang bawat empleyado ay maaaring magkaroon lamang ng isang posisyon at ang posisyon na iyon ay makikilala sa pamamagitan ng pagsasama ng Posisyon ID mula sa kaukulang entry ng mga posisyon ng table. Bilang karagdagan sa pagiging pangunahing susi para sa mga talahanayan ng Mga Posisyon, sa halimbawang ito, ang posisyon ng Posisyon ID ay isang banyagang susi mula sa talahanayan ng Mga Empleyado hanggang sa mga talahanayan ng Mga Posisyon. Pagkatapos ng database ay maaaring gamitin ang field na ito upang iugnay ang impormasyon mula sa maraming mga talahanayan at tiyakin na ang anumang mga pagbabago o mga pagdaragdag sa database ay patuloy na nagpapatupad ng referential integridad .

Sa sandaling nakilala mo ang banyagang susi, maaari mong sige at hilahin ang ninanais na impormasyon mula sa database gamit ang sumusunod na query:

PUMILI FirstName, LastName, Pamagat FROM Employees INNER JOIN Posisyon ON Employees.PositionID = Positions.PositionID

Paglikha ng mga Dayuhang Key sa SQL Server

Sa teknikal na paraan, hindi mo kailangang tukuyin ang relasyon ng tahasang upang magawa ang mga tanong tulad ng nasa itaas. Gayunpaman, kung tahasang tinukoy mo ang relasyon gamit ang isang banyagang pagpigil sa key, ang database ay makakapagpatupad ng ilang gawaing pang-housekeeping para sa iyo:

Narito kung paano mo malilikha ang dayuhang susi sa SQL Server:

ALTER TABLE Mga empleyado ADD FOREIGN KEY (PosisyonID) Mga pamagat ng REFERENCES (PositionID)

Maaari ka ring lumikha ng isang banyagang susi kapag lumikha ka ng isang talahanayan sa pamamagitan ng pagdaragdag ng sugnay:

FOREIGN KEY REFERENCES Posisyon (PositionID)

sa dulo ng kahulugan ng haligi para sa dayuhang hanay ng haligi.