Microsoft SQL Server-д гадаадын түлхүүрүүдийг хэрхэн үүсгэх

Өгөгдлийн сангийн хамгийн чухал ухагдахуунуудын нэг бол мэдээллийн баазын хоорондын харилцааг үүсгэдэг. Эдгээр харилцаа нь олон тооны хүснэгтэнд хадгалагдсан өгөгдлийг холбох, үр дүнтэй аргаар олж авах механизмыг бий болгодог. Хоёр хүснэгтийн хооронд холбоос үүсгэхийн тулд та нэг ширээн дээр нэг багананд буй гадаад түлхүүрийг заах ёстой.

Өгөгдлийн сангийн хүснэгт ба харилцаа

Майкрософт гэх мэт хүснэгтийн програмд аль хэдийн ашиглагдаж байсантай адил өгөгдлийн сангууд нь ердөө л хэд хэдэн хүснэгттэй болохыг та аль хэдийн мэдсэн байж болох юм. Үнэндээ та Excel-ийн хүснэгтийг өгөгдлийн санд шилжүүлж болно. Хэдий тийм боловч хүснэгтүүдээс өгөгдлийн санг өөр өөрөөр хуваадаг бол хүснэгтүүдийн хооронд хүчирхэг холбоог бий болгоход оршино.

Жишээлбэл, хүний ​​нөөцийн мэдээллийг хянах компанид ашигладаг мэдээллийн санг авч үзье. Мэдээллийн сан нь компанийн ажиллагсад бүрийн дор дурдсан мэдээллийг агуулдаг ажилчдын хүснэгттэй байж болно:

Энэ жишээнд ажилтны ID нь өгөгдлийн сан руу нэмэгдэх үед ажилтан бүрт оноосон тоогоор илэрхийлэгдсэн бүхэл тоо юм. Байршлын ID гэдэг нь компанийн ажилтны байр суурийг тодорхойлоход ашиглагддаг ажлын код юм. Энэ схемд ажилтан нь зөвхөн нэг байр суурьтай байж болно, гэхдээ олон (эсвэл үгүй) ажилтнууд байр бүрийг дүүргэж болно. Жишээлбэл, танд "касс" гэсэн албан тушаалд хэдэн зуун ажилтантай байж болно.

Өгөгдлийн сан нь бас нэртэй хүснэгт агуулах бөгөөд байрлал бүрийн талаар дараах нэмэлт мэдээллийг байршуулна.

Энэ хүснэгтэд байршлын ID талбар нь Ажилчдын хүснэгтэн дэх Employee ID талбартай төстэй - энэ нь өгөгдлийн сан руу байршуулалт нэмэгдсэн үед бий болсон обьект юм.

Мэдээллийн баазаас ажилчдын жагсаалтыг татахад хүн бүрийн нэр, тэдний нэрийг хүсэх нь лавтай. Гэсэн хэдий ч энэ мэдээлэл нь олон мэдээллийн баазын хүснэгтэнд хадгалагддаг тул зөвхөн JOIN хайлтын тусламжтайгаар олж авч болно. Энэ нь хүснэгтийн хоорондох холбоог шаарддаг.

Хүснэгт бүтцийг харах үед харилцааны тодорхойлолтыг тодорхойлсон талбар нь Position ID талбар юм. Ажилтнууд зөвхөн ганц байрлалтай бөгөөд Position table-ийн харгалзах оролтоос Position ID-ыг оруулснаар байрлалыг тодорхойлно. Албан тушаалын хүснэгтийн үндсэн түлхүүр болохоос гадна, энэ жишээнд Position ID талбар нь Ажилчдын хүснэгтийн гадаад түлхүүр юм. Мэдээллийн сан нь энэ талбарыг олон хүснэгтээс мэдээллээр хангаж, өгөгдлийн санд орсон аливаа өөрчлөлт эсвэл нэмэлтүүд нь лавлагааны бүрэн бүтэн байдлыг хэрэгжүүлдэг.

Гадаад түлхүүрийг таньсны дараа та дараахь асуултыг ашиглан мэдээллийн баазаас хүссэн мэдээллийг татах боломжтой:

SELECT FirstName, LastName, Гарчиг FROM Ажилчдын Inner JOIN Албан тушаал дээр Ажилтнууд.PositionID = Байрлал.PositionID

SQL Server дахь гадаад түлхүүрүүдийг үүсгэх

Техникийн хувьд, дээр дурдсантай адил асуултуудыг яг таг гүйцэтгэх чадварыг тодорхой болгох шаардлагагүй. Гэсэн хэдий ч гадаад харилцааны гол хязгаарлалтыг ашиглан харилцааг тодорхойлдог бол өгөгдлийн сан нь танд зориулж зарим ажлаа гүйцэтгэх боломжтой болно:

SQL Server дахь гадаад түлхүүрийг хэрхэн үүсгэх талаар энд хэлье:

Өөрчлөлт хүснэгт Ажилчид ADD ГАРЫН ҮНДСЭН ҮҮРЭГ (PositionID) АЛБАН ТУШААЛЛАГА Байрлалууд (PositionID)

Мөн та уг хэллэгийг нэмснээр хүснэгт үүсгэхдээ гадаад түлхүүр үүсгэж болно:

ГАДААДЫН БИЧИГ ҮЗҮҮЛЭХ Албан тушаал (PositionID)

баганын тодорхойлолтыг гадаад түлхүүр баганы төгсгөлд.