Чӣ тавр эҷоди калидҳои хориҷӣ дар Microsoft SQL Server

Яке аз консепсияҳои муҳим дар пойгоҳи додаҳо муносибатҳои байни ҷадвалҳои махфиятро эҷод мекунад. Ин муносибатҳо механизми пайвастани маълумотеро, ки дар ҷадвалҳои якҷоя нигоҳ дошта мешаванд ва онро ба таври муассир истифода мебаранд. Барои эҷод кардани алоқаи байни ду ҷадвал, шумо бояд калиди хориҷӣ дар як ҷадвал, ки сутуни дигар дар ҷадвал истифода мешавад, нишон диҳед.

Ҷадвалиҳо ва муносибатҳо

Шумо аллакай медонед, ки пойгоҳи додаҳо танҳо як силсила ҷадвалҳо , ба монанди он, ки шумо аллакай дар барномаи барномаи ҷадвал истифода мебаред, ба монанди Microsoft Excel. Дар ҳақиқат, шумо ҳатто метавонед як воҳиди Excel-ро ба базаи маълумотҳо табдил диҳед. Дар куҷо будани пойгоҳи додаҳо аз диаграммаҳо мераванд, аммо вақте ки барои сохтани муносибатҳои пурқуввати байни ҷадвалҳо меояд.

Масалан, як базаи маълумоте, ки аз ҷониби ширкат барои пайгирӣ кардани захираҳои инсонӣ истифода мебарад, баррасӣ кунед. Он базаи маълумот метавонад як мизе, ки кормандон дорад, дошта бошад, ки маълумоти зеринро барои ҳар як аъзои кормандон дорад:

Дар ин мисол, ID-коргари меҳнати пурра, ки барои ҳар як корманд ба онҳо дода мешавад, вақте ки ба базаи маълумотҳо илова карда мешаванд. ID ном дорад рамзи кор, ки барои ишора кардани мавқеи корманд дар ширкат истифода мешавад. Дар ин нақша, корманд метавонад танҳо як вазифаро дошта бошад, вале коргарони сершумор (ё не) метавонанд ҳар як мавқеъро пур кунанд. Масалан, шумо метавонед садҳо кормандон бо мавқеи "Котиби" дошта бошед.

Додани маълумот метавонад як мизро "Майдонҳо" бо маълумоти иловагӣ дар бораи ҳар як мавқеъ дар бар гирад:

Фазои номии мавқеъ дар ин ҷадвал ба майдони кории кормандон дар ҷадвалҳои кормандон монанд аст - ин рақами ягонаи санҷишшуда мебошад, ки вақте ки ба базаи маълумотҳо илова карда мешавад.

Вақте ки мо ба рӯйхати кормандон аз пойгоҳи дода кашида мешавем, табиатан хоҳиш карда мешавад, ки ҳар як ном ва унвони онҳоро талаб кунад. Бо вуҷуди ин, ин маълумот дар ҷадвалҳои якчанд махзани маълумотҳо нигоҳ дошта мешавад, бинобар ин он метавонад танҳо бо истифодаи пурсиши JOIN, ки муносибати мавҷударо байни ҷадвалҳо талаб мекунад.

Вақте, ки шумо ба сохтори ҷадвалон нигаред, майдони муайянкунандаи муносибат эҳтимолан маълум аст - коғази феҳристи мавқеъ. Ҳар як корманд метавонад танҳо як мавқеъ дошта бошад ва мавқеи он аз ҷониби ID-и мавқеъ аз ҳисоби дахлдори мизҳои мушаххас муайян карда мешавад. Илова бар ин, калиди ибтидоӣ барои мизҳои мавқеъӣ, дар ин мисол, соҳаи феҳристи мавқеӣ низ калиди хориҷӣ аз ҷадвалҳои кормандон ба ҷадвалҳои мавқеъ мебошад. Пас аз он, ки базаи маълумотҳо ин майдонро барои ҳамоҳангсозии иттилоот аз ҷадвалҳои яктарафа истифода барад ва боварӣ ҳосил кунед, ки ягон тағирот ва иловаҳо ба пойгоҳи додашударо боэътибории давомдор идома медиҳанд.

Баъд аз он, ки шумо калиди хориҷӣро муайян кардед, шумо метавонед маълумоти пештараро аз базаи маълумотҳои зерин дархост кунед:

SELECT FirstName, LastName, Номгӯи номгӯи кормандон дар ИНОТ ПЕШГУФТАНИ МАЪЛУМОТ ОИДИ ПЕШНИҲО

Сохтани калидҳои хориҷӣ дар SQL Server

Техникаро ба шумо лозим нест, ки робитаи худро ба таври равшан муайян созед, то тавонед, ки саволҳоро ба монанди яке аз боло иҷро кунед. Бо вуҷуди ин, агар шумо муносибати худро бо истифодаи маҳдудиятҳои калидии хориҷӣ муайян кунед, пойгоҳи дода метавонад қобилияти корӣ барои корҳои зеринро иҷро кунад:

Дар ин ҷо шумо чӣ тавр шумо калиди хориҷӣ дар SQL Server бунёд карда метавонед:

АСОСИ АСОСИОНӢ ХОҶАГИРИИ АСОСӢ (Натиҷаи) Паёмҳо (PositionID)

Ҳамчунин, шумо метавонед калиди хориҷӣ ҳангоми илова кардани матн илова кунед:

МАЪЛУМОТИ НАЗДИ ПРЕЗИДЕНТИ МАЪЛУМОТҲО (PositionID)

то охири тасвири сутун барои сутуни асосии хориҷа.